私の会社では、各データベース オブジェクト (ストアド プロシージャ、ビューなど) を個別の SQL ファイルとして保存し、そのようにソース管理下に配置しています。
これまで、バージョン管理されたファイル構造には非常にフラットなストレージ モデルがありました。
DatabaseProjectFunctions- (すべての関数がここにあり、それ以上のネストはありません)
StoredProcedures- (すべてのストアド プロシージャがここに含まれます。それ以上のネストはありません)
Views- (同上)
大きな新しいプロジェクトのために、別のアイデアが思い浮かびました。プレハブのフラット リストではなく、件名ごとにこれらのファイルを保存してみませんか?
例えば:
DatabaseProjectReports- (個々のストアド プロシージャ、ビューなど)
SpecificReport- (ここにオブジェクトが追加され、必要に応じてさらにネストされます)
SpecificApplication- (任意の深いネストを持つすべてのタイプの DB オブジェクト)
- など……。
明らかな欠点は、このフォルダー構造がデータベース オブジェクトにいかなる種類の名前空間階層も課さないことです。組織専用です。したがって、重複した名前を持つオブジェクトを導入するのは非常に簡単です。データベースプロジェクトを調査し、名前の競合で死ぬには、ある種のビルドツールが必要です。
私が知りたいのは、バージョン管理されたファイル構造でアプリケーションのサブジェクトごとに SQL ファイルを整理するこの方法を試した人はいますか? それは価値がありました?私が説明したように、プロジェクトを監視するビルド ツールを作成しましたか?