2013-02-10 32 views

回答

2

一般來說,你看人家使用固定的ID而不是用戶名的一對夫婦的原因:

  • 通常情況下,用戶名可以改變(比如,從「鮑勃」到「羅伯特」改變我的用戶名)
  • ID,特別是數字ID通常可以更有效地存儲和索引
+0

我應該使用內置objectid嗎? – carboncomputed 2013-02-10 18:10:08

+0

Mongo讓你自由地做* * *。也許我錯了,但我不知道至少在早期之間很難在一種或另一種形式之間進行轉換。這兩種形式的關鍵都有其優勢,但如果這一點阻止你開始開發模型,那麼我會說擲硬幣或者選擇第一個選擇,但是準備好應對後果。 – JayC 2013-02-10 18:32:09

2

在用戶名不經常更改的前提下,使用用戶名作爲密鑰有其好處。

當您查看用戶的個人資料時,您當然希望看到他們的朋友列表。當您將朋友存儲爲可讀名稱時,您可以顯示此列表而無需額外的數據庫查詢。但是,當您將它們存儲爲ID時,需要使用附加查詢查找每個朋友的姓名,這可能需要一段時間。

+0

人們會認爲朋友列表會爲他的朋友自動生成ID(因爲這是自動ID的點...他們不會改變,如果用戶殺死一箇舊帳戶並獲得一個新帳戶,一個新的ID)。 – JayC 2013-02-10 17:55:46

+0

與此同時,使用用戶名當然也有其好處。這只是對舊的自然鍵/自動鍵參數的重新評估。 – JayC 2013-02-10 17:57:10

+0

@JayC,但這個說法不適用於MongoDB,就像它適用於關係數據庫一樣。由於MongoDB中的連接非常昂貴,因此您應該嘗試將所有相關數據存儲在一個集合中,而不是將其分散在多個集合中。 – Philipp 2013-02-10 18:05:49

相關問題