用户表数据库中 ID 的用途

Jam*_*s T 6 mysql database-design uniqueidentifier

在表中,例如用户表,对于任何特定用户,只有 1 行带有 a,为什么要有 ID 字段,更不用说作为主键了?

Mar*_*ian 11

我会回答一个问题:为什么你需要一个单行的表?关于表的设计,任何表都应该有一个主键。我不会讨论它,因为它是任何设计书籍的基础。关于设计主键的方式,有两种思想流派:

  • 使 PK 作为一个单独的列,通常是自生成的,如 GUID 或自动递增 INT(在您的情况下是一个单独的 uniqueidentifier 列);
  • 使 PK 作为表内部的一列(或一组列)(在您的情况下将是用户名或电子邮件或 SSN,无论使该用户唯一的任何内容)唯一标识记录的一个。

你坚持什么路线,这只是品味问题。

  • 我尽量远离复合 PK,因为使用外键引用此表的任何其他表也必须具有这些复合列。我创建了一个合成 PK,然后对复合列使用唯一约束。 (3认同)

Phi*_*llo 6

您可以在引用中使用 ID 而不是用户名,以便您可以重命名用户并保留正确的审计跟踪。

如果用户 jane.doe 与 john.smith 结婚,她可能想将用户名更改为 jane.smith

一般来说,人们通常更关心离婚时的姓名更改,但纠正错别字或在公司成长时将 john 切换为 john.smith 也很有用。

  • 可能_不_应该,因为有时您想此时创建一​​个新 ID。 (2认同)