2010-07-23 133 views
2

我爲一個系統創建了一個類圖,現在我必須將它建模爲一個真實的系統。這意味着將其轉換爲數據庫。UML中的繼承與你的ERD有什麼關係?

現在有一個只有幾個屬性的基類,但有許多類繼承它。現在我的轉換清單說我必須爲每個班級創建一個表格。

我不知道如何處理繼承,我可以看到,關聯與PK和FK的完成,但子類又如何?

是否有一些文章可以解決這個問題,或者是否有人可以向我解釋?

由於提前,

+0

看看:http://stackoverflow.com/questions/190296/how-do-you-effectively-model-in傳承-IN-A-數據庫 – 2010-07-23 16:16:32

回答

3

您有三種方法可以將類層次結構轉換爲關係表: - 僅爲超類創建表(將所有屬性和子類關聯移動到與超類相對應的表中,並有可能取NULL值) - 僅爲子類創建表:在每個子類中重複超類的所有屬性和關聯 - 爲超類和每個子類創建表。在這種情況下,子類的PK與超類在同一個表上是一個FK(這確保了子類表中的所有標識符對應於超類表中的現有標識符。兩個表之間的連接允許恢復全部信息元素)

的最佳策略取決於問題(例如的,在每類屬性的數量,層級的數量,層次結構是否是不相交的或沒有,...)

如果你想看一些例子,你可以上傳你的層次結構到UMLtoDB在線服務http://modeling-languages.com/content/uml2db-full-code-generation-sql-scripts-databases

0

通常情況下,你在並行設計你的數據模型(數據庫表/ PK/FK等),當你設計你的實際的類圖。在確定了所有的類別以及每個類別的依賴關係之後,您可能會繼續使用設計順序圖表。到目前爲止,您的數據模型應該已經完成​​。

我不明白你的情況在這裏,但IMO你所遵循的過程對我來說似乎是一個壞主意。

1

放棄所有的UML廢話 - 保持簡單。它只是重複而沒有收益。 Microsoft或Sun是否爲DOT NET或Java發佈了UML ......對於這些奇怪的示例,大多數框架沒有任何官方的UML。