我有一個抽象基類和5-6類繼承該基類的對象模型。我想設計一個適當的關係數據模型來存儲它們。設計數據模型的最佳方式是什麼?如何將對象繼承映射到數據模型?
這裏是爲要保持已發送郵件的跟蹤一個虛構的應用一個簡單的例子:
消息(基類)
- 長期ID
- 日期creationDate
- 字符串文本
EmailMessage(延伸消息)
- 字符串recipientList
PhoneMessage(延伸消息)
- 字符串phoneNumber的
我傾向於創建一個單獨的表每個班級都在哪裏bles email_message and phone_message只包含他們的私人領域。它的美妙之處在於它反映了對象模型並保持關注的清晰分離。壞處是數據將不得不被加載兩次:一次用於確定具體類型,另一次用於加載具體表中的剩餘數據。
我覺得這是一個非常普遍的問題,我還沒有找到滿意的答案。我會很感激你的任何建議。你有什麼經驗?謝謝。
皮特
+1。 MS EF團隊做了一個體面的[一系列博客文章](http://weblogs.asp。net/manavi/archive/2010/12/24/inheritance-mapping-strategies-with-entity-framework-code-first-ctp5-part-1-table-per-hierarchy-tph.aspx)。 – 2013-02-11 22:50:13
感謝您的回覆。它幫助我找到其他來源。 OOP和rel之間的衝突。數據庫也被稱爲**阻抗不匹配**,如果有人想爲它谷歌。 我仍然很想知道人們使用不同方法的經驗。所以請隨時繼續發帖。謝謝。 – Jules 2013-02-12 17:42:40