何时创建新表?

时间:2014-01-17 19:55:22

标签: sql database entity-framework database-design data-structures

我有一份员工及其工作合同的申请表。 每份工作合同都有假期。我们会跟踪公司欠员工的天数(“VacationOwe”)以及他拍摄的人数(“VacationTaken”)。

我应该将此“VacationOwe”和“VacationTaken”作为合同的属性,还是应该创建一个名为Vacaction的类(表),其属性为“VacationOwe”,“VacationTaken”和“ContractId”并加入两个表?

两种方法的优点是什么?
是否应该创建新的类或表,或将数据保存在一个中。

2 个答案:

答案 0 :(得分:1)

  

我应该将此“VacationOwe”和“VacationTaken”作为员工的财产

最有可能......不。因为这会使正常化失败。此外,它不提供有关何时休假的信息(如果您关心这一点)。除此之外,您还必须每年为每位员工进行此计算。

  

使用类(表)使用属性“VacationOwe”和“VacationTaken”以及“EmployeeId”调用Vacaction并跨越两个表?

在这种情况下拥有单例类是不好的。一般来说,在大多数情况下你应该避免单身。

那该怎么办?好吧,如果你的系统不关心度假细节,你可以选择第一个解决方案。也许您想要考虑下面的选项(A)或者如果您想要更通用的方法,您可以做类似于选项(B)的事情。这一切都取决于您的详细要求。

enter image description here

答案 1 :(得分:0)

如果这两个属性确实只与员工相关,则创建单独的表没有任何好处。表现会更差,你将不得不加入这些表格。

对于这个具体的例子,似乎休假日也可能与一年相关联。如果是这种情况,那么单独的表就有意义了,这样您就可以跟踪员工和年度的假期/欠款。