2013-12-08 49 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我想你在這個問題上忘了一個字。 –

相關問題