它是不好用的用户名在数据库设计中的主键?
-
22-07-2019 - |
题
余物通过一个朋友告诉:
你用什么独特的钥匙?我希望你 不保存整个用户名 ---这会占用太多的表空间!分配一个唯一的用户ID给每个 (唯一的)用户名和保存该用户ID (应该是无符号整数 AUTO_INCREMENT或BIGINT UNSIGNED 自动递增)。不要忘了 创建参考
外键(
userID
)参考usertable
(userID
)中的所有表 使用用户ID。
时的上述说法是否正确?为什么或者为什么不呢?
解决方案
我认为他是正确的(错误的理由),因为主键不能改变,但username
可以改变。所以,你应该用userid
,因为它不会改变。
其他提示
他是对错误的原因。表空间是次要的事实,您的应用程序可能会在以后强制要求用户名是可以改变的,甚至不再是唯一的(你能想象如果不要求唯一的用户名的应用程序,如堆栈溢出),因此您的应用程序将需要大规模的重构和数据迁移的,而不是在其他(整数PK)情况下的光的变化。
不隶属于 StackOverflow