我应该使用外键还是外部表中的字符串值



假设您有一个员工表和一个工作列表表。表中每个员工必须有一份工作。通常,我会给每个工作一个id,并将其作为员工表中的外键引用。然而,我的一位同事建议我们将工作列表表用作字典,在插入/更新之前,我们检查表中是否存在"工作类型",然后将工作类型作为字符串插入员工表。

据我所见

优点:

更快的选择(尽管主键上的联接应该是边际的差异)

缺点:

按工作类型选择员工的速度较慢
更难换工作型

以上哪种方法最好?

我不确定我是否理解为什么会发生冲突。您知道主键和外键都可以像数字类型一样容易地成为字符串类型吗?通过将职务类型字段设置为职务类型表中的主键,并将外键设置为员工表中的外键,可以同时具有这两种系统的优点。

这种方法的优点是,您不需要将工作类型表连接回employee表来获得工作类型的描述性名称,同时您仍然使用数据库来提供对数据库设计很重要的引用完整性。

缺点是,如果您有大量员工,您将使用更多的存储资源,并且如果您更改了职位描述,则需要在员工表中级联这些更改。

虽然使用整数作为主键是很常见的(有些框架需要这样做),但没有规则规定必须这样做。

如果这会使管理工作类型变得更加困难(我假设这是你或其他人将要做的事情),那么为了小幅提高性能真的值得吗?这听起来也像是为了一个小小的奖励而使事情过于复杂。为了简单起见,我认为最好的做法是使用外键。

相关内容

  • 没有找到相关文章

最新更新