1

我想创建一个包含“电子邮件地址”和/或“用户名”unique字段的“用户”表,我是否还应该添加一个“id”int usigned auto_increment作为primary key

我之所以问,是因为我已经看到一些教科书示例在这样的表中使用“id”字段和另一个unique字段。

4

2 回答 2

4

是的,这是最佳实践。

  1. 您将在其他表中将其用作外键。
  2. 您希望密钥保持唯一(您可能需要更改用户名)
  3. 您希望键被索引,数字类型的索引将比 varchar 小得多。
于 2012-10-24T17:24:18.393 回答
1

您应该使用userId列,因为使用VARCHAR列数据类型对表进行索引会降低性能。

使用INT对性能更好。它们占用的空间更少,更重要的是它们的比较速度更快。

INT可以在一条 CPU 指令中执行比较。对于VARCHARs 或CHARs,必须依次比较每个字符。这使得每个 PK 查找更快。如果您有连接表,则每个连接选择都将查找 PK。

于 2012-10-24T17:25:55.113 回答