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

MySQL въпрос - Как да се справя с множество типове потребители - една таблица или няколко?

Инстинктите ви да не създавате голяма маса с много NULLS са правилни. Това е лоша идея от гледна точка на съхранение/извличане/поддръжка, както и от гледна точка на валидиране на данни (повече за това по-късно).

Двата най-често срещани подхода:

1) Имайте потребителска таблица с всички общи полета в нея, включително поле "userType". След това имайте отделна таблица за всеки тип потребител, съдържаща допълнителните полета. Всички потребители имат ред в таблицата с потребители и една или повече от таблиците с конкретни потребителски типове. Това е най-нормализираното и най-ефективно за съхранение и бързо влизане. Това също ви позволява да използвате ограничения и външни ключове, за да гарантирате, че цялата необходима информация за всеки тип потребител е налична.

2) Имайте потребителска таблица с всички общи полета в нея. Имайте друга таблица, наречена нещо като UserAttributes който има полета за потребителски идентификатор, ключ и стойност. Тук могат да се съхраняват всякакви допълнителни метаданни за конкретен потребител. Това има предимството, че не изисква никаква администрация на база данни да добавя нови потребителски типове или метаданни, които да се съхраняват за всеки тип потребител. Това обаче не ви позволява да извършвате проверка на данни на ниво DB.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sequelize — използвайте времеви печат на UNIX за полета DATE

  2. mysql - Псевдоним на динамична колона

  3. Използване на променливи в MySQL UPDATE (PHP/MySQL)

  4. AWS Aurora MySQL без сървър:как да се свържете от MySQL Workbench

  5. Mysql - свържете се с отдалечен сървър, използвайки IP адрес