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

我正在devise一些表格有可修改的PK的数据库,我想知道,这样的devise是好还是坏? 难道程序员难以编码?

坏。 如果PK定期发生变化(不是某些reogrinanization的一部分),那么它不是一个自然的PK或应用程序devise是坏的。

这听起来很难编码。 您更改logging的主键,并且必须在所有表中更改对该主键的所有引用。 容易搞砸了。 只要使用一个序列(或auto_increment或其他),并使一个主键不是数据。 或者select一个真正不太需要改变的主键。

这是有种说法,但(我的)最好的做法是总是命名一个主键“ID”,并使其成为一个串行(自动增量整数)(身份在MSSQL中的整数)。 我曾经多次发生过这样的事情,那就是我们不得不改变PK,因为它是某种自然的键,比如某人的名字。