AR 不一樣 繼承映射的問題總結

在使用AR(Nhibernate) 作ORM時,使用類的繼承體系時,它有不一樣的映射方式,解決的問題不一樣,帶來的問題差別也很大。spa

一、全部數據 存儲在一張表,不一樣的類使用 DiscriminatorColumn 來區分,這樣的方式好處是:只有一張表,在不一樣類的屬性差別不多時,很是方便實用,查詢效率也高。hibernate

二、不一樣的類 各自使用本身的表,但基類數據存儲在 基類表,子類有子類的表,這樣的方式好處是:結構清晰,代碼與結構一一對應,ID 號是 統一管理 遞增的,缺點是 查詢效率低,查詢時須要把全部相關表作鏈接查詢。對象

三、不一樣的類 各自獨立使用本身的表,基類只是代碼共享, 這樣的好處是:結構清晰,一類一表,查詢效率高,只查詢一張表,缺點是 各表有本身的ID號,好比A類有#1的對象,B類也有#1的對象。繼承

相關文章
相關標籤/搜索