2、一個繼承路徑映射到一個表(ONE_INHERITANCE_PATH_ONE_TABLE):
同樣一上面的類結構,數據庫中將存在兩張表,分別對應於Child1和 Child2.
Child1對應的數據庫表:
類屬性 數據庫表字段
Property1 FIEld1
Property2 FIEld2
Property3 FIEld3
Child2對應的數據庫表
類屬性 數據庫表字段
Property1 FIEld1
Property2 FIEld2
Property4 FIEld4
這種模式的優點是沒有數據冗余,但是缺點也是很明顯的,那就是,當 我們想根據Parent來查找滿足Parent的Child1和Child2的時候,就必須同時對兩 張數據庫表進行查找,當繼承數橫向很大的時候,這種查找將導致大量的性能下 降。
3、一個類映射到一個表(ONE_CLASS_ONE_TABLE):
對於上 面的類結構,對於的數據庫表如下。
這種模式下,每個類對應於一個數據庫表,其中字表和父表通過ID進 行關聯。當然這種方式的優點是數據冗余小,但是缺點是,當繼承關系很復雜的 時候,我們構造SQL也會變得相當復雜,從而導致修改變的也很復雜。效率也會 降低。當然了,如果一個類沒有父類也沒有子類哪麼上面三種模式都是一樣。
二、對象的組合結構:
對象的組合結構是指一個對象中包含若干 不同類型的子對象,比如人(Person)對象包含了手(Hand)對象,頭(Head) 對象等。這些都是ORM應該考慮的問題。