Есть ли какая-либо причина для создания ограничений между таблицами (внутри SQLserver) в настоящее время? Если да, то когда? Большинство приложений в моей области построены на объектных принципах, а таблицы объединяются по требованию. Спрос основывается на потребности из приложения. Я не буду загружать связку ограниченных таблиц для простого поиска, который, в свою очередь (после действия), потребует еще одного простого поиска.
Инструменты ORM, такие как EntityContext, Linq2Data, NHibernate, также сами обрабатывают ограничения, по крайней мере, вы знаете, какие таблицы нужны друг другу. Делать ограничения внутри сервера - это просто делать (заставлять) одни и те же изменения дважды?
Обычно это не вопрос для принятия решения, но эта база данных разработана совершенно по-другому. Дизайн выглядит хорошо, в основном отражает объекты, используемые приложениями. Меня беспокоит то, что все ограничения, сконфигурированные внутри SQLserver с «не каскадом». Это означает, что вы должны играть «искать и находить» при кодировании новых запросов к базе данных. В некоторых случаях требуется до 10 уровней точного порядка, чтобы сделать одно удаление.
Это удивляет меня, и я не уверен, как справиться с этим.
В моем простом мире этот параметр заставляет ограничения терять большую часть цели. Хорошо, если к базе данных обращались с хостов без знания дизайна.
Как бы вы действовали в этом сценарии?
Почему бы просто не удалить все ограничения из БД и сохранить их на уровне приложения?