如何将类层次结构(基类和继承的类)映射到数据库

|| 我想在ASP.NET MVC中创建分层对象模型,但是我不确定为此设计数据库的最佳方法是什么。我有一个具有某些属性的Product基类,例如Title,Price,OnHandQty等。我有几个继承的类,如Book,它具有ISBN号,Author等额外的属性。我的许多产品都属于通用(基本)产品类,但是某些产品将属于这些派生类(例如Book)。我不确定将其映射到数据库的最佳方法是什么。是否应为每种产品类型(包括通用产品的一个)创建单独的表?还是有更好的方法? 请注意,我并不是真正在问OR映射。我知道如何使用Entity Framework从数据库表创建类。但是在这种情况下,我对数据库设计本身感到困惑。     
已邀请:
        如果要使用实体框架,则应签出mortezam的EF Code First继承。他解释了三种可用于表示继承层次结构的策略: 每个层次结构表(TPH):启用 通过规范化多态性 SQL模式,并利用类型 包含类型的鉴别符列 信息。 每种类型的表格(TPT):代表\“是 a \“(继承)关系为 \“具有\”(外键)关系。 每个具体类别(TPC)的表格: 丢弃多态性和继承 关系完全来自 SQL模式。 (使用Code First)的想法是定义类和继承,并让框架为您创建数据库。这样,您不必担心数据库设计。 您可能还想考虑使用对象数据库或像Mongo DB这样的NoSQL存储策略之一,当您具有此类“锯齿状”类时,它们比关系数据库更有效。     

要回复问题请先登录注册