Мне интересно, что вы думаете о сохранении ограничений отношений в базе данных MS SQL.
Я переношу систему в среду .NET из ASP. Это приносит с собой бизнес-объекты и другие методы многоуровневого кодирования, которые работают для абстрагирования базы данных от пользователя / API. Новое приложение имеет определенный API над Entity Framework DAL.
База данных приложения в старой базе данных велика, и назначение некоторых таблиц будет изменено, чтобы они начали содержать двоичные данные в виде файлов и т. Д. Я стремлюсь разделить их на отдельные базы данных, чтобы упростить управление в клиентские сайты, на которых дисковое пространство ограничено.
Есть ли смысл в сохранении ограничений отношений между таблицами?
Предположения:
- Код протестирован
- Если отношения важны, исполнение выполняется в рамках Транзакции.
- Доступ к БД осуществляется только через API, другой доступ третьих лиц не поддерживается.
Причины сохранения ограничений:
- Обеспечивает структуру данных
- JOIN быстрее?
- Помощь с планом запроса?
Причины удаления ограничений в новой версии .NET:
- Можно предположить, что логика API / BIZ будет управлять такими отношениями, как Родитель / Ребенок.
- Уменьшает возможность переноса разделов БД в другие каталоги (система построена с использованием архитектуры Plug-in, большинство таблиц могут работать изолированно)
- Правильно ли я полагаю, что SQL должен выполнять дополнительные проверки во время INSERT на ограничениях, которые могут быть ненужными, когда API над БД управляет этим?