2011-02-01 81 views
4

我有一個問題,建模數據庫來存儲一些Java對象(將對象映射到關係數據庫的經典問題)。一個例子比長描述要好得多,以下是這些東西。多態列表和關係數據庫

avaliable類列表:
- 一類包含雙打
的陣列 - B類中含有的
陣列 - C類含有B的陣列和陣列(它可以繼續像那......)

所有的對象都實現了同一個父對象(比方說StorableObject)。可以有儘可能多的組合。

如何存儲所有這些值,此外,如何使用某些FK創建模型,該模型會在刪除父對象時刪除其所有子項。我的意思是,由於孩子可以存儲在各種表格中,所以我無法將簡單的FK放在父母的字段上。

謝謝;)

回答

3

只是我的看法,但似乎你可能是overgeneralizing。

因爲如上所述,它聽起來像兩個表。一個「事物」表,以及一個將「事物」與其子女聯繫起來的交叉引用。如果是這種情況,則外鍵的「ON DELETE CASCADE」子句將執行該操作。

5

你讀過太多的面向對象的書籍,而不是一本關於RDB的書。首先將數據建模爲數據。確保您的所有數據要求(根據您的問題)得到滿足。然後在實體之後建模對象。

在SO上有幾百個相同的問題,由誰已經抵達the exact same obstacle的人。不同的表和列名稱,但是相同的問題。福勒把你們所有人帶到這裏。

爲了仔細檢查您的數據並提供有用的答案,我們需要查看您的DDL或類圖或任何您擁有的。

+3

+1馬丁福勒應該收到某種終身成就,意識到要回退數據庫應用程序工程的原因。 – 2011-02-03 14:31:10