我需要建議反映類的對象模型的數據庫結構的三種變體。數據庫的結構應該允許 理解類繼承。 爲簡單起見,類僅包含屬性(無方法)。Java類在數據庫中存儲在哪裏?
我認爲單表繼承,類表繼承,具體表繼承模式。
但並非所有事情都清楚。問題是:
1)哪裏有類存儲在數據庫中,哪裏存儲類的實例?
2)比方說,class B
延伸class A
。如何使B
的實例b
明白它是派生的A
?如何使b
瞭解這是class B
的一個實例,而不是class A
?
3)是否有一個模式,在繼承層次結構中增加一個新類不需要改變表的結構?
4)有沒有允許多重繼承的模式?
UPD:大概我表達了我的想法不夠清楚。假設它不是Java,而是任何其他語言。這個quiesion是在數據庫結構的情況下。是否有模式(如上圖),允許多重繼承?
謝謝。
1)但是,當我從理解[這裏](http://stackoverflow.com/questions/657803/where-are-java-classes-stored-in-oracle),有存儲Java字節代碼和源的表。你能否談談這點?我不明白。 4)在數據庫(不是java)的情況下,如果使用多重繼承,我應該使用多個鑑別器列嗎? –
@ a.yuzhanin您發佈1鏈路)指的是Oracle數據庫,並從閱讀它,它是不是真的清楚什麼是字節碼和源的用途。這可能是某種類型的存儲過程等,但它肯定不適用於一般的ORM等,至於2):你可能仍然有一個鑑別,因爲它描述了一個行應該映射到的類。繼承信息通常存儲在代碼本身中。除此之外,多重繼承往往不是最明智的方法(這就是Java不支持它的原因)。 – Thomas