允许用户更新 PK 的数据库设计不好吗?

允许用户更新 PK 的数据库设计不好吗?

我正在设计数据库,其中有些表有可修改的 PK,我想知道这样的设计是好还是坏?这会让程序员很难编写代码吗?

答案1

不好。如果 PK 定期更改(不是作为某些重组的一部分),则它不是自然 PK,或者应用程序设计不好。

答案2

这听起来很难编码。您更改了一条记录的主键,并且必须更改所有表中对该主键的所有引用。很容易搞砸。只需使用序列(或 auto_increment 或其他)并创建一个不是数据的主键。或者选择一个不太可能需要更改的主键。

答案3

有人这么说过,但(我的)最佳做法是始终将主键命名为“id”,并将其设为序列(自动增量整数)(MSSQL 中的标识整数)。我曾多次遇到过这样的情况:当主键是某种自然键(如某人的姓名)时,我不得不更改主键。

相关内容