来自http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Computer+Science.aspx
“开发人员通常采用其他两种方法中的一种,前景更复杂但在处理关系存储时效率更高:他们要么为每个具体(最衍生)类创建一个表,更喜欢采用非规范化及其成本,或者否则他们为整个层次结构创建一个表,通常在任何一种情况下创建一个鉴别器列来指示表中每一行所属的类。(这些方案的各种混合也是可能的,但通常不会创建结果与这两者显着不同。)不幸的是,非规范化成本对于大量数据而言通常很重要,和/或表中将包含大量空列,这将需要对所有列进行可约性约束,从而消除强大的功能RDBMS提供的完整性约束。“
我想知道哪些ORM使用一种或另一种方式,特别是使用单个表和.NET的那些?
答案 0 :(得分:4)
我认为大多数领先的ORM工具允许使用不同的继承方案,包括单个表。
我可以提到DataObjects.Net,它仅在以前的版本中使用类表继承方案。但是这个产品被完全重写了,现在允许使用三种不同的继承方案:类表,单表和具体表。
答案 1 :(得分:1)
尤其是在.NET中使用单个表的那些?
LINQ-to-SQL可以使用单表/鉴别器方法。给出了一个例子here。
答案 2 :(得分:1)
NHibernate supports单表方法。
答案 3 :(得分:1)
The Sense/Net Content Repository是一个ORM,其中有一个固定的层次结构模式:大约15个表处理由XML定义的所有映射。
NHibernate不是单表方法的示例,因为必须为每个对象定义单独的表,然后逐个定义模式绑定。这是每个混凝土表的应用。