Ограничения проекта базы данных Visual Studio - табличный скрипт или отдельный файл?
В проектах базы данных Visual Studio я видел, как ограничения таблиц добавлялись двумя разными способами:
- Как часть того же файла сценария, который использовался для создания таблицы, после оператора CREATE TABLE;
- В отдельном файле, хранящемся в папке "Таблицы \ Ограничения", одно ограничение на файл.
Есть ли веские причины для того или другого?
Visual Studio занимает второе место при импорте базы данных из SQL Server, поэтому я думаю, что это лучший способ, но я не понимаю, почему. С точки зрения разработчика, номер 1 кажется лучше, поскольку он держит определение таблицы и ограничения "ближе" друг к другу.
2 ответа
Я могу думать только о причинах их объединения (#1) именно по тем причинам, о которых вы упомянули: это делает определение таблицы и ограничения ближе друг к другу.
Visual Studio раньше сохраняла ограничения в отдельных файлах, но прекратила эту практику в последнем шаблоне "Проект базы данных SQL Server", представленном SQL Server Data Tools (устанавливается в VS 2012 из коробки и требует отдельной загрузки для VS 2010).
Сильный голос за № 1. Отделение ограничений от табличных сценариев затрудняет добавление необнуляемых столбцов позже. При развертывании сгенерированный сценарий ALTER TABLE не сможет добавить столбец NOT NULL в таблицу с существующими данными, поскольку он не имеет ограничения DEFAULT. Если ограничение уже есть в скрипте CREATE TABLE, ALTER TABLE будет использовать его, и все будет работать.