Ste*_*ven 21 mysql database-design primary-key unique-key
一位朋友告诉我:
你用什么独特的钥匙?我希望你不是保存整个用户名---这会占用太多的表空间!为每个(唯一)userNAME分配唯一的userID并保存此userID(应为INTEGER UNSIGNED auto_increment或BIGINT UNSIGNED auto_increment).不要忘记创建参考
使用userID的所有表中的FOREIGN KEY(
userID)REFERENCESusertable(userID).
以上陈述是否正确?为什么或者为什么不?
Gra*_*ton 49
我认为他是对的(出于错误的原因),因为主键不能改变,但username可以改变.所以你应该使用userid因为它不会改变.
Vin*_*vic 19
他出于错误的原因是正确的.表空间是次要的,因为您的应用程序可能稍后要求更改用户名甚至不再是唯一的(您可以设想不需要唯一用户名的应用程序,例如Stack Overflow),因此您的应用程序需要进行重大的重构和数据迁移而不是其他(整数PK)情况下的轻微变化.