sqlserver中数据库的继承
我要做一个项目,我有sqlserver中数据库的继承,sql,sql-server,sql-server-2008,sql-server-2008-r2,sql-server-2012,Sql,Sql Server,Sql Server 2008,Sql Server 2008 R2,Sql Server 2012,我要做一个项目,我有 任务实体可以有几种类型的任务,假设它们都有不同的字段。那么如何在sql中管理这种方法呢 像这样 Task ( abstract class ) Change Engine Oil ( child class ) Meet James ( child class ) 因此,在上述情况下,每个子类都有不同类型的属性您可以考虑从两个表开始—Tasks和TaskEntityDetails Tasks表将有两列—TaskID(主键)和Task TaskEnti
任务实体
可以有几种类型的任务,假设它们都有不同的字段。那么如何在sql中管理这种方法呢
像这样
Task ( abstract class )
Change Engine Oil ( child class )
Meet James ( child class )
因此,在上述情况下,每个子类都有不同类型的属性您可以考虑从两个表开始—Tasks和TaskEntityDetails Tasks表将有两列—TaskID(主键)和Task TaskEntityDetails表将有4列—ID(主键)、TaskID(外键)、字段和值 字段列将TaskID的所有字段存储在行中,而不是作为单独的列。 值列将具有与每个TaskID的字段对应的值 您的桌子将如下所示:
ID TaskID Field Value
1 1 StartDate 2014-01-01
2 1 EndDate 2014-01-31
3 1 Contact ABC
4 2 StartDate 2014-01-01
5 2 TaskName XYZ
然后,当您想要检索数据时,可以使用
PIVOT
操作符。这样,您就可以避免在表中有一些空值。如果我们考虑了您的解决方案,那么我们将把几乎所有的数据都放在