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

Проектиране на релационна база данни с множество потребителски типове

Вашият случай изглежда като екземпляр на клас/подклас.

Има два класически начина за проектиране на SQL таблици за работа с подкласове. Всеки има предимства и недостатъци.

Единият начин се нарича "Наследяване на една таблица". В този дизайн има само една таблица за всички видове потребители. Ако дадена колона не се отнася до даден ред, пресечната точка остава NULL. Може да се добави колона, за да посочи типа потребител.

Друг начин се нарича "Наследяване на таблицата на класа". Това е много подобно на отговора на Nanego, с няколко незначителни промени. Има една таблица за потребители, с всички общи данни и поле за идентификация. Има една таблица за всеки подклас с данни, които се отнасят за този подклас. Полето за идентификация често се настройва като копие на полето за идентификатор в съответния ред обратно в таблицата с потребители. По този начин ключът на подкласа може да изпълнява двойно задължение, действайки едновременно като първичен ключ и като външен ключ, препращащ към потребителската таблица. Тази последна техника се нарича "Споделен първичен ключ". Изисква малко програмиране по време на вмъкване, но си заслужава. Той налага естеството на връзката едно към едно и ускорява необходимите присъединявания.

Можете да търсите и трите от тези дизайна като тагове в 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. Променете стъпката за автоматично нарастване на полетата с

  3. Къде трябва да съхранявам външен ключ?

  4. Как да създадете MySQL база данни с помощта на cPanel API

  5. Каква е разликата между utf8_general_ci и utf8_unicode_ci?