在任何网站应用程序中,我们都会遇到使用类层次结构表或子类表的情况。但重要的是要决定哪种更适合您的用例。我基本上了解哪种情况下使用哪种方式更好?
场景:员工。永久员工和合同员工扩展员工。两个选项存在:
选项1:使用类层次结构表,在其中表示所有字段。好处是您可以从单个表中获取所有详细信息,并且可以摆脱在员工和永久/合同雇员之间的联接。因此,性能得到改善。但是,是的,即使对于您认为是永久员工不可能为空的字段,也无法声明非空约束(因为我们在单个表中处理永久员工和合同员工)。这是缺点。
选项2:表格每个子类,其中我们具有对父表的外键引用。连接会降低性能。但是,是的,您可以继续使用放置约束的方法,例如不允许为空,而您在第一种选项中无法执行此操作。
我的看法:对于这种情况,请选择选项1,如果不需要放置约束,则可从性能的角度去掉联接很好。是否有更多方面需要了解还是我的理解正确?
场景:员工。永久员工和合同员工扩展员工。两个选项存在:
选项1:使用类层次结构表,在其中表示所有字段。好处是您可以从单个表中获取所有详细信息,并且可以摆脱在员工和永久/合同雇员之间的联接。因此,性能得到改善。但是,是的,即使对于您认为是永久员工不可能为空的字段,也无法声明非空约束(因为我们在单个表中处理永久员工和合同员工)。这是缺点。
选项2:表格每个子类,其中我们具有对父表的外键引用。连接会降低性能。但是,是的,您可以继续使用放置约束的方法,例如不允许为空,而您在第一种选项中无法执行此操作。
我的看法:对于这种情况,请选择选项1,如果不需要放置约束,则可从性能的角度去掉联接很好。是否有更多方面需要了解还是我的理解正确?