Mysql
 sql >> база данни >  >> RDS >> Mysql

Динамични таблици на база данни в django

Интересен въпрос, който може да представлява по-широк интерес.

Създаването на една таблица на потребител е кошмар за поддръжка. Вместо това трябва да дефинирате една таблица, която да съхранява всички потребителски данни, и след това да използвате възможностите на базата данни, за да извлечете само онези редове, които се отнасят до потребителя, който ви интересува (след проверка на разрешенията, ако е необходимо, тъй като не е добра идея да давате на всеки потребител неограничен достъп до данните на друг потребител, без да са зададени специфични разрешения).

Приемането на предложеното от вас решение изисква да създадете SQL изрази, съдържащи името на таблицата на съответния потребител. Последователните заявки към базата данни ще бъдат предимно различни и това ще забави работата, тъй като всеки SQL израз трябва да бъде „подготвен“ (синтаксисът трябва да бъде проверен, имената на таблицата и колоните трябва да бъдат проверени, разрешението на искащия потребител за достъп до посочените ресурси трябва да бъде оторизиран и т.н.).

Чрез използване на една таблица (модел) едни и същи заявки могат да се използват многократно, с параметри, използвани за промяна на конкретни стойности на данни (в този случай името на потребителя, чиито данни се търсят). Работата ви с база данни ще се движи по-бързо, ще ви е необходим само един модел, за да опишете всички потребителски данни, а управлението на базата данни няма да бъде кошмар.

Друго предимство е, че Django (който изглежда използвате) има обширен модел на разрешения, базиран на потребител, и може лесно да се използва за удостоверяване на потребителско влизане (след като знаете как). Тези предимства са толкова убедителни, надявам се, че ще се откажете от ереста си и ще решите, че можете да се измъкнете с една таблица (и, ако планирате да използвате стандартни данни за влизане в Django, връзката с модела на потребителя, която идва като централна част от всяко Django проект).

Моля, не се колебайте да задавате повече въпроси, докато продължавате. Изглежда, че сте нов в работата с бази данни и затова се опитах да представя подходящо ниво на детайлност. Има много клопки като този, ако нямате достъп до компетентни съвети. Хората от SO ще ви помогнат.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създаване на таблица в MySQL, която съответства на друга таблица?

  2. Как да записвам и извличам изображение на моя сървър в java webapp

  3. Как да покажа уникални ограничения на таблица в MySQL?

  4. Създаване на тип променлива ENUM в MySQL

  5. Как лесно да импортирате множество sql файлове в MySQL база данни?