程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#基礎系列:實現自己的ORM(ORM的基礎概念)(2)

C#基礎系列:實現自己的ORM(ORM的基礎概念)(2)

編輯:關於C語言

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應該考慮的問題。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved