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

Dynamiske databasetabeller i django

Et interessant spørgsmål, som måske er af bredere interesse.

At oprette et bord pr. bruger er et vedligeholdelsesmareridt. Du bør i stedet definere en enkelt tabel til at indeholde alle brugeres data, og derefter bruge databasens muligheder til kun at hente de rækker, der vedrører brugeren af ​​interesse (efter at have kontrolleret tilladelser, hvis det er nødvendigt, da det ikke er en god idé at give nogen bruger ubegrænset adgang til en anden brugers data uden at have angivet specifikke tilladelser).

At vedtage din foreslåede løsning kræver, at du konstruerer SQL-sætninger, der indeholder den relevante brugers tabelnavn. Successive forespørgsler til databasen vil for det meste være anderledes, og dette vil bremse arbejdet, fordi hver SQL-sætning skal "forberedes" (syntaksen skal kontrolleres, navnene på tabeller og kolonner skal verificeres, den anmodende brugers tilladelse for at få adgang til de navngivne ressourcer skal være autoriseret, og så videre).

Ved at bruge en enkelt tabel (model) kan de samme forespørgsler bruges gentagne gange, med parametre, der bruges til at variere specifikke dataværdier (i dette tilfælde navnet på den bruger, hvis data søges efter). Dit databasearbejde vil bevæge sig hurtigere, du skal kun bruge en enkelt model til at beskrive alle brugeres data, og databasestyring vil ikke være et mareridt.

En yderligere fordel er, at Django (som du ser ud til at bruge) har en omfattende brugerbaseret tilladelsesmodel og nemt kan bruges til at autentificere brugerlogin (når du ved hvordan). Disse fordele er så overbevisende, at jeg håber, du vil vende tilbage fra dit kætteri og beslutte dig for, at du kan slippe afsted med et enkelt bord (og, hvis du planlægger at bruge standard Django-login, et forhold til brugermodellen, der kommer som en central del af enhver Django projekt).

Du er velkommen til at stille flere spørgsmål, mens du fortsætter. Det ser ud til, at du er ny inden for databasearbejde, og derfor har jeg forsøgt at præsentere et passende detaljeringsniveau. Der er mange faldgruber som denne, hvis du ikke kan få adgang til kyndig rådgivning. Folk på SO vil hjælpe dig.



  1. php-kategori, underkategoritræ

  2. Selleri Worker Database Connection Pooling

  3. Sådan opretter du forbindelse til databasen fra Unity

  4. Oracle til PostgreSQL — Markører og almindelige tabeludtryk