В моей компании мы сохраняем каждый объект базы данных (сохраненный процесс, представление и т. Д.) В виде отдельного файла SQL и таким образом размещаем их под контролем исходного кода.
До сих пор у нас была очень плоская модель хранения в нашей версионной файловой структуре:
DatabaseProject
Functions
- (все функции здесь; дальнейшее вложение отсутствует)
StoredProcedures
- (здесь все сохраненные процы; дальнейшее вложение отсутствует)
Views
Для большого нового проекта мне пришла в голову другая идея: почему бы не сохранить эти файлы по темам, а не в этих готовых плоских списках?
Например:
DatabaseProject
Reports
- (отдельные сохраненные процы, просмотры и т. Д.)
SpecificReport
- (больше объектов здесь, дальнейшее вложение по мере необходимости)
SpecificApplication
- (все типы объектов БД с произвольно глубокой вложенностью)
- и так далее ....
Очевидным недостатком является то, что эта структура папок не накладывает никакой иерархии пространства имен на объекты базы данных; это только для организации. Таким образом, было бы очень легко ввести объекты с дублирующимися именами . Вам понадобится какой-нибудь инструмент для сборки, чтобы исследовать проект базы данных и умереть от конфликтов имен.
Что я хотел бы знать: кто-нибудь пробовал этот метод организации файлов SQL по тематике приложения в их версионной файловой структуре? Стоило ли? Вы создали инструмент сборки, который бы контролировал проект, как я описал?