sql >> Databasteknik >  >> RDS >> Mysql

Hur hanterar man massiv lagring av poster i databasen för användarauktoriseringsändamål?

Faktum är att om du vill ha behörigheter på artikelnivå per användare då behöver du ett sätt att relatera User s till Article s de kan komma åt. Detta kräver ett minimum du behöver N*A (där A är antalet unikt tillåtna artiklar).

3NF-metoden för detta skulle vara, som du föreslog, att ha en UsersArticles set... vilket skulle vara ett mycket stort bord (som du noterade).

Tänk på att den här tabellen skulle kunna nås en hel del...Detta verkar för mig som en av situationerna där ett något denormaliserat tillvägagångssätt (eller till och med noSQL) är mer lämpligt.

Tänk på modellen som Twitter använder för sina användarföljartabeller:

Jeff Atwood om ämnet

Och blogg med hög skalbarhet

Ett exempel från dessa bitar är en läxa från Twitter att fråga efter följare från en normaliserad tabell sätter en enorm stress på en User tabell. Deras lösning var att avnormalisera följare så att en användares följares lagras i deras individuella användarinställningar.

Jag föreställer mig att ett liknande tillvägagångssätt skulle kunna användas för att visa artikelbehörigheter och undvika en oerhört stressad UsersArticles enkelbord.



  1. Hur vet man att installerad Oracle Client är 32-bitars eller 64-bitars?

  2. JDBC Batch insert undantagshantering

  3. Varför är laddning av SQLAlchemy-objekt via ORM 5-8x långsammare än rader via en rå MySQLdb-markör?

  4. Stage APPL_TOP i Oracle Applications R12