2013-08-29 58 views
1

在Enterprise Architect中,我有一個使用UML類和「關聯」類關係構建邏輯模型的邏輯模型。我可以將此模型轉換爲DDL,並將SQL Server 2008設置爲默認數據庫之後,這種方式非常有效。Sparx Enterprise Architect - DDL轉換,多對多關係和SQL Server 2008

但是,我遇到了一些管理多對多關係的痛苦。比方說,我有兩個表:Test1的和TEST2

兩個表將包含一個單一的屬性,名稱:字符串

我設置關聯的兩者之間,與源和目標的多重性爲0 .. *

正如預期的那樣,當轉換爲DDL時,這會創建一個關係表,它是完美的。然而,這正是我正在努力的命名約定。

默認情況下,在DDL中,它將創建一個名爲'JoinTest1ToTest2'的表,其中test1ID和test2ID作爲新表中的值(與兩個實際表中生成的ID列匹配)。起初,重命名這是一個障礙,但我意識到,如果我只是將一個名稱放入關係中,它將使用該名稱作爲新表。一個問題解決了。

現在,我有其他問題避免了這樣一個簡單的解決方案。問題是它在新表中創建了2個外鍵,這也是完美的。然而,它並不像通常用FK_前綴命名這些外鍵,它只是簡單地調用外鍵'Test1'和'Test2'。除了不符合命名標準之外,它也是無效的,因爲該名稱與表名衝突,並且生成的SQL失敗。

有什麼辦法可以指導創建的FKs的名稱嗎?按照我們的命名標準,關係表應該命名爲'Test1_Test2',Fkeys應該是'FK_Test1_Test2__Test1'和'FK_Test1_Test2__Test2'。

儘管在進行DDL轉換後(以及執行此操作後,SQL代碼的DDL生成實際上可以完美工作),手動更新這些操作非常簡單,但在大型模型中執行操作可能非常繁瑣。

謝謝!

回答

1

在您設置默認數據庫的相同選項頁面(工具 - 選項 - 源代碼工程 - 代碼編輯器)中,有一個DDL名稱模板按鈕,可讓您爲外鍵,主鍵和獨特的約束。

從你的問題看來,你在這裏已經失去了正確的設置,因爲默認的模板導致外鍵被命名爲「FK_」,後面跟着外部和主表名。

在數據庫工程 - 物理數據模型 - 數據類型 - 數據庫鍵 - 外鍵 - 定義外鍵名模板下的幫助文件中描述了模板語法。

相關問題