Таблица атрибутов данных против множества маленьких таблиц - PullRequest
2 голосов
/ 20 октября 2010

Я работаю для клиента, который в настоящее время имеет таблицу DataAttributes со столбцами Name, Type, Value и ParentID. Эта таблица используется для хранения практически всего, такого как штаты США, анатомические элементы, выбор поля со списком и системные настройки. Мне бы очень хотелось избавиться от этой таблицы и разбить каждую секцию на собственную таблицу.

Есть ли в этом плюсы и минусы?

Ответы [ 3 ]

4 голосов
/ 21 октября 2010

Этот подход отбрасывает многие функции СУБД.Вы не можете использовать дизайн базы данных для обеспечения целостности данных.Некоторые примеры:

  • Ссылочная целостность (внешние ключи)
  • Целостность домена (проверка ограничений)
  • Обнуляемость (NULL / NOT NULL)
  • Данныетип
  • Уникальность (уникальное ограничение)
  • ...

Я не уверен, что есть плюсы, которые действительно компенсируют минусы.

3 голосов
/ 20 октября 2010

Плюсы - один пользовательский интерфейс может использоваться для поддержки чего-либо во всей системе.

Минусы - неэффективно, потенциально рискованно (например, повреждение или случайное удаление может иметь последствия для всей системы)

С другой сторонырука, "если она не сломана, не чини ее" - это очень хорошее правило для подражания.Если у вас нет проблем с производительностью, или это будет препятствием для будущего развития, которое вам придется делать, какова отдача от его доработки сейчас?

3 голосов
/ 20 октября 2010

Это анти-шаблон базы данных, называемый таблицей EAV. Это создает проблемы с производительностью и является чрезвычайно плохой идеей в большинстве случаев.

http://www.simple -talk.com / мнение / мнение-частей / плохо чарма /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...