以下数据场景开发我的应用程序的最佳方式是什么?构建此项目的最佳方式
为了简单起见,我的模型有一个称为项目与标准共同领域,专案编号,名称,起始日期为基表,所有者等
它与该保持数据的其他表一比一的关系不同的项目类型,例如ConstructionProject,FinanceProject,HolidayProject等。这些表中的每一个都通过主键ProjectId链接到基本Project表。
如果我的课是基于一个基类项目和其他类从这个继承? 如:
public class Project
{
public int ProjectId { get; set; }
public string Name { get; set; }
public DateTime StartDate { get; set; }
public string Owner { get; set; }
}
public class ConstructionProject : Project
{
public string Location { get; set; }
public string Contractor { get; set; }
}
或者我应该有其他类型的项目作为自己的类项目的对象? 例如:
public class ConstructionProject
{
public Project Project { get; set; }
public string Location { get; set; }
public string Contractor { get; set; }
}
作为一个标准的MVC项目,然后我就可以有控制器处理CRUD操作的第二个方案上面这样的:
public ActionResult Update(Project project)
{
// update project object
}
public ActionResult Update(ConstructionProject constructionProject)
{
// update constructionProject object
// update project object
}
不知道控制器会是什么样处理继承第一种情况下的对象?
该项目是一个使用实体框架的标准C#MVC项目。对于不同的项目类型,可能会有多个链接表。 那么哪个选项是最佳实践,以及如何建模控制器(如果与我建议的方式不同) 或者还有更好的方法吗?
感谢
编辑 - 只是为了增加一些更多的信息 - 基类也可以存在于它自己的,而不是仅仅是一个基类,换句话说,该项目表可以有没有相关记录记录在其他表中,如果有帮助?
使用类似于第一个选项的东西 - 防止重复工作 - 允许轻松扩展。 – user1666620 2014-12-04 14:30:44
从一个数据库一点上,我会选择第二个选项 – Marthijn 2014-12-04 14:32:40
参见:如何决定使用是否属于或有关系(http://stackoverflow.com/questions/6395366/how-to-decide-whether -use-is-a-or-has-a-relation) – Corak 2014-12-04 14:37:30