为什么我需要用户ID属性?

时间:2013-12-08 00:05:00

标签: database class-diagram

我目前正在尝试设计社交网络类型的网站,这是类图 我到目前为止

enter image description here

目前我在单独的表中有userId和username,因为我想规范化这些表,但现在我不知道为什么我需要userId属性?我做过研究,很多类似的项目都有这个属性,但我不明白为什么?如果用户名已经将唯一标识特定用户。

顺便说一下,我知道我的请求表有问题,因为目前使用给定的属性我无法识别主键 感谢

1 个答案:

答案 0 :(得分:3)

我能想到的两个重要原因:

  1. 优化。当使用整数主键而不是varchar时,SQL数据库通常会更好地执行。 Lookup-by-user是此环境中最常见的操作之一,因此具有真正的性能影响。由于这个原因,许多DBA不喜欢GUID / UUID作为PK。
  2. 没有任何内容要求用户名必须唯一标识用户。例证:Stack Exchange用户句柄不必是唯一的,并且可以自由编辑。