Есть ли какие-либо преимущества использования MySQL для чего-либо, кроме как «тупого» хранилища данных? - PullRequest
4 голосов
/ 16 января 2012

Причина, по которой я спрашиваю, состоит в том, что мы хотели бы использовать определенное ограничение CHECK, которое MySQL в настоящее время не поддерживает. Без этого типа ограничений вся причина использования внешних ключей и ссылочной целостности, по-видимому, уменьшается, поскольку код приложения принимает на себя больше обязанностей базы данных.

Если бы нам пришлось создать «глупую» модель данных и перенести всю проверку ссылочной целостности на уровень в коде приложения, то потенциально тестирование могло бы быть проще, поскольку ошибки ссылочной целостности были бы захвачены в приложении, а не в БД. , Это также может потенциально ускорить разработку новых модулей, так как они не обязательно должны быть полностью завершены (это термин?) Перед тестированием.

Итак, есть ли другие преимущества использования «правильной» модели данных в MySQL и сохранения внешних ключей и операторов «ON UPDATE CASCADE» и т. Д.?

Или мы должны отказаться от MySQL и перейти к чему-то еще?!

Спасибо!

Ответы [ 3 ]

7 голосов
/ 16 января 2012

Некоторые разработчики рекомендуют вообще не иметь бизнес-логики в базе данных - в вашем тупом хранилище данных.Так что это определенно правильная стратегия.

Что касается меня при перемещении ограничений (и другой бизнес-логики) из базы данных, так это то, что повсеместно применять эти ограничения труднее.Каждый разработчик в каждом приложении может нарушить это ограничение.АБД не может помочь, либо.

Итак, я склоняюсь к тому, чтобы эти правила были в самой базе данных.

2 голосов
/ 17 января 2012

Вы можете эмулировать проверочное ограничение другими способами

  • Trigger
  • FK для таблицы из одной строки
  • Единственное значение enum

Это неудобно, но не конец света.

Не все ограничения могут или должны быть сделаны в приложении в любом случае. Уникальность? Проверки с нулевой суммой (например, баланс = ноль, прежде чем аккаунт будет деактивирован).

Это твои данные и твой беспорядок, который нужно убрать, если что-то пойдет не так ...

0 голосов
/ 16 января 2012

Да, если вам нужна функция, которая не поддерживается MySQL, вам следует перейти к чему-то другому.

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