单列表的主键数据类型

问题描述 投票:0回答:1

我正在使用数据库模型,并且有一些表(我们称它们为T表),这些表将总是有非常有限的记录(<100)。而且这些T表将只有一列varchar(100)。而且这些T型表不会频繁更改,可能会在蓝色月亮中更改一次。此类表的示例:

  • 公司部门名称

现在,我感到困惑:具有一个单列(例如Departments(varchar和主键))类型varchar table具有两列ID(int和主键的同一表)和department( varchar

谁能解释在我的情况下哪个更有意义?

非常感谢。

mysql sql database data-modeling datamodel
1个回答
1
投票

大多数开发人员将这些表称为查找表。

考虑是否允许更改部门名称。我不是在谈论他们将有多大的改变,而是要有可能发生。实际上,如果这种情况很少发生,考虑这一点甚至更为重要。

如果您使用以varchar作为主键的单列表,并且部门名称发生更改,您将如何更新引用该表的其他表中的行?您只需要更新Departments表中的一行,但是您可能必须更新Employees表或Budgets表中引用该部门的数百行,或Reports表中的数千行,或Sales表中的数百万行。

如果您将整数主键与关联的varchar用作部门名称,则无需更改所有其他引用该部门的行。即使名称更改,他们也可以继续使用其整数引用它。

© www.soinside.com 2019 - 2024. All rights reserved.