2013-12-08 47 views
1

我目前正在设计网站的社交网络类型,这是类图
我此刻的我的帐户及用户名在不同的表,因为我想到目前为止为什么我需要用户ID属性?

enter image description here

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

通过我知道我有一个请求表中的问题,因为在给定我不能确定一个主键 谢谢,我能想到的

+0

我建议整个“用户”类在这种情况下是无效的(就我所见,从您的描述中)。它有1-1协会,并没有提供任何有用的信息。 – NoChance

+0

我也开始这么想,谢谢!回到绘图板 – JWayne93

+0

在编码之前,您在模型中考虑这是件好事。 – NoChance

回答

3

两大原因属性的那一刻方式:

  1. 优化。当使用整数主键而不是varchar时,SQL数据库的性能通常会更好地达到远端。按用户查找是这种环境中最常见的操作之一,因此这具有实际的性能影响。正因如此,许多DBA不喜欢GUID/UUID。
  2. 没有规定用户名必须唯一标识用户。例如:Stack Exchange用户手柄不必是唯一的,而且可以自由编辑。
+0

我想添加到#2中,虽然原来的问题表明用户名将是唯一的,但如果稍后想要允许重复的用户名,这将有助于未来的发展。此外,如果允许用户更改用户名,该怎么办?对于链接到用户的表,这可能涉及更多的数据库操作,而ID号可以保持不变。 – jwinn

+0

感谢这是有道理的,所以在我的情况下,我应该用户和帐户表,并使userId主键? – JWayne93

+0

@ JWayne93我想你在这个问题上忘了一个字。 –

相关问题