我想在ASP.NET MVC中创建一个分层对象模型,但我不确定为此设计数据库的最佳方法是什么。我有一个产品基类,有一些属性,如Title,Price,OnHandQty等。我有几个继承的类,如Book,它有额外的属性,如ISBN号,作者等。我的许多产品将属于通用(基础)产品类,但有些产品属于这些派生类(例如Book)。我不确定将此映射到数据库的最佳方法是什么。我应该为每种产品类型创建单独的表(包括一种用于通用产品)吗?还是有更好的方法吗?
请注意,我并没有真正询问OR映射。我知道如何使用Entity Framework从数据库表创建类。但在这种情况下,我对数据库设计本身感到困惑。
答案 0 :(得分:1)
如果您打算使用Entity Framework,那么您应该通过mortezam查看Inheritance with EF Code First。他解释了可用于表示继承层次结构的三种策略:
这个想法(使用Code First)是您定义类和继承,并让框架为您创建数据库。这样你就不必担心数据库设计了。
您可能还想考虑使用Object Database或其中一个NoSQL存储策略,例如Mongo DB,当您拥有这些“锯齿状”类时,这些策略比关系数据库更有效