Должна ли среда разработки отключать внешние ключи? - PullRequest
5 голосов
/ 19 мая 2009

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

Мне было интересно, что люди думают об этой идее - при разработке вы оставляете включенными внешние ключи в своей среде разработки или отключаете их?

Ответы [ 13 ]

1 голос
/ 19 мая 2009

Внешние ключи не должны зависеть от наличия кода. Я бы посчитал этот глупый совет. Легко испортить ссылочную целостность базы данных, и разработчики допускают множество ошибок. Так же, как разработчик c # ценит безопасность типов, любой, кто разрабатывает базы данных, оценит защиту ссылочной целостности.

Однако в случае групповых вставок и т. Д. Может быть быстрее отключить ограничения FK, но только после тщательного тестирования с их включением.

0 голосов
/ 07 декабря 2011

Не обижайся, но вы, ребята, говорите, как стая овец, извергающих то, что вас принудительно кормили. На любой вопрос по SQL Server ответом всегда будет «это зависит».

Внешние ключи предназначены для регулирования людей, которые могут положить руки в банку с печеньем. Если вы разработали эффективное средство для передачи файлов cookie другим пользователям и предотвращения прямого доступа к банке с файлами cookie, вам не нужны внешние ключи.

0 голосов
/ 19 мая 2009

Я собираюсь сказать, давайте удалим ограничения.

Долой ФК!

и удалите все индексы, а также все другие ограничения.

Шучу. :)

Конечно ... держите его как можно ближе к производству - уменьшите размер данных, и, пожалуйста, ПОТЕРЯЙТЕ СХЕМУ данных, прежде чем распространять их.

...