【发布时间】:2017-06-15 14:52:43
【问题描述】:
假设我有两个实体,它们具有相似的字段,但有几个不同。例如
public class Foo{
public int ID{get;set;}
public int IndexNumber{get;set;}
public string Name{get;set;}
public string Info{get;set;}
}
对
public class Bar{
public int ID{get;set;}
public DateTime AppointmentTime{get;set;}
public string Name{get;set;}
public string Info{get;set;}
}
在 Entity Framework 中,您实际上可以将 ID、Name 和 Info 放入第三个父类,并让其他两个继承自它,并让它自动将它们一起存储在一个表中,并带有一个“鉴别器”列,该列说明了类名来区分它们。
我的问题是,假设两个模型(外键等)之间没有关系,是用空值和鉴别器做一个表,还是做两个表更好?
【问题讨论】:
-
我不会把它们放在同一张桌子上,因为它们不是同一个东西。
-
应该使用数据库规则来设计数据库,以实现良好的设计。在表中混合不同的实体根本不是好的设计。数据库表不是 Excel 工作表。它代表一个实体或一个关系
-
将多组数据放在一张 Excel 表格中通常也不是一个好主意!
-
一切都是正确的,但是......有时规则可以“不遵守”(这是我的想法)。此外,这取决于:如果您有其他类似的“对象”,使用带有“鉴别器”列的单个表,可以让您进行更简单的查询,涉及更多“对象”(例如“对象”类型的记录计数) .
标签: c# .net sql-server entity-framework