我想创建一个包含“电子邮件地址”和/或“用户名”unique
字段的“用户”表,我是否还应该添加一个“id”int usigned auto_increment
作为primary key
?
我之所以问,是因为我已经看到一些教科书示例在这样的表中使用“id”字段和另一个unique
字段。
我想创建一个包含“电子邮件地址”和/或“用户名”unique
字段的“用户”表,我是否还应该添加一个“id”int usigned auto_increment
作为primary key
?
我之所以问,是因为我已经看到一些教科书示例在这样的表中使用“id”字段和另一个unique
字段。
是的,这是最佳实践。
您应该使用userId
列,因为使用VARCHAR
列数据类型对表进行索引会降低性能。
使用INT
对性能更好。它们占用的空间更少,更重要的是它们的比较速度更快。
INT
可以在一条 CPU 指令中执行比较。对于VARCHAR
s 或CHAR
s,必须依次比较每个字符。这使得每个 PK 查找更快。如果您有连接表,则每个连接选择都将查找 PK。