sql >> Database teknologi >  >> RDS >> Mysql

Hvordan håndterer man massiv lagring af poster i databasen til brugerautorisationsformål?

Sagen er, at hvis du vil have tilladelser på artikelniveau pr. bruger så har du brug for en måde at relatere User s til Article s de kan få adgang til. Dette kræver et minimum du skal bruge N*A (hvor A er antallet af unikke tilladelser).

3NF-tilgangen til dette ville være, som du foreslog, at have en UsersArticles sæt... hvilket ville være et meget stort bord (som du bemærkede).

Overvej, at denne tabel ville få adgang til en hel masse...Det forekommer mig at være en af ​​de situationer, hvor en lidt denormaliseret tilgang (eller endda noSQL) er mere passende.

Overvej den model, som Twitter bruger til deres brugerfølgetabeller:

Jeff Atwood om emnet

Og blog med høj skalerbarhed

Et eksempel fra disse stykker er en lektie lært på Twitter, at forespørgsler om følgere fra en normaliseret tabel lægger enormt pres på en Users bord. Deres løsning var at denormalisere følgere, så en brugers følgers gemmes på deres individuelle brugerindstillinger.

Jeg forestiller mig, at en lignende tilgang kunne bruges til at betjene artikeltilladelser og undgå en enormt stresset UsersArticles enkelt bord.



  1. 4 funktioner til at formatere et tal til 2 decimaler i SQL Server

  2. SQL_CALC_FOUND_ROWS / FOUND_ROWS() virker ikke i PHP

  3. Hvad er forskellen mellem MySQL BOOL og BOOLEAN kolonnedatatyper?

  4. Arbejde med Java Data i Sisense