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

Дизайн на база данни:регистрация и проверка

Виждам това от друга гледна точка.

Във вашата ситуация една маса вероятно е достатъчно добра. Но има и други съображения.

1) Обем. В малка таблица филтрирането по флаг няма да повлияе значително на производителността. В голяма таблица (милиони редове) ще трябва да поставите флага в индекс. Поставянето на флаг за ниска кардиналност в индекс на голяма таблица може да намали производителността.

2) Дефекти. Наличието на флаг в таблицата изисква почти всяка заявка да използва флага. За достатъчно голяма или достатъчно сложна система някой ще пропусне този флаг. Определянето на риска зависи от цената на случайно избиране на неактивиран потребител.

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пространството, заето от изтрити редове, се използва ли повторно?

  2. Как мога да дешифрирам MySQL пароли

  3. MySQL деактивира всички тригери

  4. Проблем със съвпадение на редове в базата данни с използване на PDO

  5. Как да създадете езикови файлове на Codeigniter от база данни?