2010-04-15 60 views
1

我沒有問題將ER轉換爲SQL表,但我不知道如何將EER轉換爲SQL表? 你知道EER具有「是」規範和繼承,但我不知道關係數據庫如何與繼承規範連接如何將EER轉換爲SQL表?

+0

是EER UML嗎?從你所說的聽起來像是這樣。 – leeand00 2010-04-15 19:50:44

+0

EER增強了實體關係,具有諸如ER建模繼承等新功能。問題是我無法將EER模型轉換爲SQL表格,因爲它們具有「是」規格。 – 2010-04-15 19:59:48

+0

你有可能在這裏發佈圖表嗎?把截圖放在你的問題中? – leeand00 2010-04-15 20:31:45

回答

0

我想說看看Hibernate storage strategies

Hibernate是一個持久化SQL數據庫中的對象的ORM系統。在我發送給您的鏈接中,它爲您提供了一個表格模式,說明存儲策略在SQL數據庫中的存儲方式。

如果您使用AppfuseGroovy它可以爲您生成這些關係。

然後,您可能想要將模式映射到某種CASE工具中,以將其轉換爲實體關係圖。

+0

感謝您向我介紹Java編程的新方面。我會谷歌休眠,並獲得更多信息。但我的問題是獨立於平臺。只是我想將EER轉換爲SQL表。 – 2010-04-15 20:02:36

+0

@Khajavi「is-a」是繼承權嗎? Hibernate支持存儲在SQL表中。 你只需要創建一些實際的類來轉換它。 – leeand00 2010-04-15 20:30:36

+0

@Khajavi我並不是說你需要使用Hibernate。我建議你使用Hibernate來生成你的SQL表。 – leeand00 2010-04-15 20:38:15

1

我不知道如何將所有EER轉換爲SQL表中的一個用戶操作,但這應該工作:

  • 右鍵單擊一個表,
  • 複製表創建腳本到剪貼板,
  • 將此腳本粘貼到shell命令中。

這將創建表。

希望這會有所幫助。

0

最簡單的答案是:
子類型表將使用超類型的id作爲它們的id。這將保證子類型'是'超類型,而不是子類型'與超類型相關聯。
您還有其他規則可以轉換EERD泛化/專業化層次結構(如果您有興趣,請回復併發送給您一個鏈接以瞭解所有規則)。然而,大多數情況下,下面的兩個規則去上班

  1. 創建一個超的關係,爲每個亞型每個關係,亞型關係的id是超關係的ID(這個選項一般適用於所有情況)。將所有常用屬性存儲在超級關係中,僅存儲子類型中的特殊屬性。
  2. 對於「不相交強制性專業化/泛化層次結構」,您可以選擇爲每個子類型創建表(不必爲超類型創建關係)。

希望這會有所幫助。