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:
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.