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

Използването на главна таблица за споделени колони добра практика ли е за цяла база данни?

Защо? Направете всичко вашите обекти изискват да бъдат разширяеми по този начин? Вероятно не - в повечето приложения има най-много един или два обекта, които биха се възползвали от това ниво на гъвкавост. Другите субекти всъщност се възползват от стабилността и яснотата на не променящ се през цялото време.

EAV е пример за Ефектът на вътрешната платформа :

С други думи, сега е ваша отговорност да напишете код на приложението, за да правите всички неща, които правилната RDBMS вече предоставя, като ограничения и типове данни. Дори нещо толкова просто като да направите колона задължителна като NOT NULL не работи в EAV.

Вярно е, че понякога проектът изисква много таблици. Но вие се заблуждавате, ако смятате, че сте опростили проекта, като сте направили само две таблици. Все още ще имате точно толкова отделни обекти, колкото бихте имали таблици, но сега от вас зависи да ги предпазите от превръщането им в купчина боклук.

Преди да инвестирате твърде много време в EAV, прочетете тази история за компания, която почти спря да функционира, защото някой се опита да направи своето хранилище на данни произволно гъвкаво:Bad CaRMa .

Освен това написах повече за EAV в публикация в блог, EAV FAIL , и в една глава от моята книга, SQL Antipatterns:Избягване на клопките на програмирането на бази данни .



  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. Как да настроите и да влезете като root потребител в MySQL

  3. Може ли MySQL Cluster да обработва терабайтова база данни

  4. MySQLDumper:Базиран на PHP и Perl инструмент за архивиране на MySQL база данни

  5. MySQL AS ключова дума