使用以下数据方案开发应用程序的最佳方法是什么?
为简单起见,我的模型有一个名为Project的基表,标准的公共字段是ProjectId,Name,StartDate,Owner等。
它与维护不同项目类型数据的其他表具有一对一的关系,例如,ConstructionProject,FinanceProject,HolidayProject等。这些表中的每一个都通过其主键链接回基础Project表,专案编号。
我的类应该基于基类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; }
}
或者我应该将其他类型的项目作为自己的类与Project对象? 例如:
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
}
在第一种情况下,不确定控制器如何处理继承的对象?
该项目是使用Entity Framework的标准C#MVC项目。对于不同的项目类型,可能存在多个链接表。 那么哪个选项是最佳实践以及如何对控制器进行建模(如果与我建议的方式不同?) 或者有更好的方法吗?
由于
编辑 - 只是添加更多信息 - 基类也可以存在于其自身而不仅仅是基类,换句话说,Project表可以包含没有相关记录的记录其他表格,如果有帮助吗?
答案 0 :(得分:2)
这是一个常见的问题,它有一个共同的答案。继承或组成。答案是:如果A is B
然后A inherits B
,则A uses B
。例如,cat is animal
但table has an array of four legs and one board
在你的情况下,它似乎是第一选择。