Enterprise Architect では、論理モデルを構築するために、UML クラスと「関連」クラスの関係を使用して論理モデルを作成しています。このモデルを DDL に変換できます。SQL Server 2008 を既定のデータベースとして設定すると、これはかなりうまく機能します。
ただし、多対多の関係を管理するのに苦労しています。Test1 と Test2 の 2 つのテーブルがあるとします。
両方のテーブルには、名前: 文字列という 1 つの属性が含まれます。
ソースとターゲットの両方の多重度を 0..* として、2 つの間の関連付けを設定します。
予想どおり、DDL に変換すると、これは完璧なリレーショナル テーブルを作成します。ただし、それは私が苦労している命名規則です。
デフォルトでは、DDL に「JoinTest1ToTest2」という名前のテーブルが作成され、test1ID と test2ID が新しいテーブルの値として使用されます (2 つの実際のテーブルで生成された ID 列と一致します)。最初はこれの名前を変更するのがハードルでしたが、単純に名前をリレーションシップに入れると、新しいテーブルにその名前が使用されることに気付きました。1つの問題が解決しました。
さて、私が抱えている他の問題は、そのような簡単な解決策を避けてきました。問題は、新しいテーブルに 2 つの外部キーが作成されることです。これも完璧です。ただし、これらの外部キーに通常のように FK_ プレフィックスを付けて名前を付けるのではなく、単に外部キー 'Test1' および 'Test2' を呼び出します。命名基準に従っていないため煩わしいだけでなく、この名前がテーブル名と競合し、生成された SQL が失敗するため、無効でもあります。
作成された FK の名前をガイドする方法はありますか? 当社の命名基準では、リレーショナル テーブルの名前は「Test1_Test2」、Fkey の名前は「FK_Test1_Test2__Test1」および「FK_Test1_Test2__Test2」にする必要があります。
DDL 変換を行った後にこれらを手動で更新するのは非常に簡単ですが (そして、これを行った後、SQL コードの DDL 生成は実際に完全に機能します)、大規模なモデルではこれを行うのは面倒な場合があります。
ありがとう!