【发布时间】:2010-02-28 12:33:03
【问题描述】:
在为多个用户设计新的应用程序/数据库时,通常会涉及到一个用于用户管理的表。
该表通常总是有用户名和 ID....
只是为了确认我不是白痴(好吧,你可能仍然这么认为!)我刚刚下载并查看了 MediaWiki 和 PHPBB 的架构,它们也是这样做的。
当我第一次了解关系数据库时,我总是被告知一条重要规则是永远不要复制数据或做任何不必要的事情。
那么,为什么我们的主键是 ID 而不是 Username?
如果它不是唯一的(例如 SO 系列网站),我理解原因,但在这些应用程序中,它是。
我唯一能想到的是使用Select * from xxx where ID="454" 而不是Select * from xxx where name="some_really_long_name" 会更快,或者因为名称很长会大大增加数据库大小。
这些是唯一的原因,还是我在这里遗漏了什么?
【问题讨论】:
-
....哇...这么多好答案,很难选择正确 - 耻辱您不能标记倍数或给那些加倍努力的人+2...除非其他人回应了一些让其他人陷入困境的东西,我想我会为 Charles Bretana v Donnie 掷骰子......从那里写的东西中学到了很多东西,感谢其他所有提到重命名的人 - 非常有意义,感觉就像一个没有考虑过的白痴。
标签: sql database-design data-modeling