单列的主键数据类型 Table

Primary Key Datatype for Single Column Table

我正在研究一个数据库模型,并且有一些 tables(我们称它们为 T-table),它们的记录数量总是非常有限(< 100)。而这些 T-table 将只有一列 varchar(100)。而且这些T-table不会经常变化,大概千载难逢。 此类表格的示例:

现在,我很困惑: 具有 单列(例如部门(varchar 和主键 ))类型 varchar table 相同的 table 有两列 ID(int 和主键 ) 和 department(varchar).

谁能解释一下在我的场景中哪一个更有意义?

非常感谢。

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

想想部门名称是否允许更改。我不是在谈论他们改变的可能性有多大,而是说它是否会发生。事实上,如果这种情况很少发生,考虑这一点就更重要了。

如果您使用以 varchar 作为主键的单列 table,并且部门名称发生变化,您将如何更新引用它的其他 table 中的行?您只需要更新 Departments table 中的一行,但您可能需要更新 Employees table 或 Budgets 中引用该部门的数百行] table,或 Reports table 中的数千行,或 Sales table.

中的数百万行

如果您使用带有关联 varchar 的整数主键作为部门名称,则无需更改引用该部门的所有其他行。他们可以继续通过整数引用它,即使名称发生变化。

PK总是用sequence或者serial number,关键是没意义,既然没意义就没必要改(毕竟把一个没意义的东西改成另一个没意义的东西有什么意义? ), 那么我们就可以达到稳定。