2013-06-28 89 views
1

我希望在我的應用程序中存儲用戶的個人資料詳細信息,如出生日期,國家,名字,姓氏,他們加入的日期,他們的個人資料的位置等。 我在Expressjs應用程序中使用貓鼬。我還將存儲用戶名和散列密碼,以及它們是否已從其電子郵件地址激活。我有幾個問題讓我感到困惑,不確定該怎麼辦?存儲個人資料的詳細信息

  • 我應該所有用戶存儲在一個貓鼬模型,並有一個列激活c如果用戶已經從電子郵件鏈接激活與否,或者我應該有兩個不同的表,一旦用戶激活我將他從未激活的桌面移至激活的桌面。

  • 第二件事就是想知道應該將配置文件的細節存儲爲同一模型中的列,或者使用人口爲配置文件細節創建另一個模型。我在想,因爲這些細節有我需要查詢的任何內容。它們基本上是用於讀寫的。我不查詢使用這些參數。所以我認爲讓他們在不同的模式下會稍微好一點,因爲我一直只會詢問用戶名或密碼。我認爲可能的另一種選擇是在子文件中使用它們。

  • 我也將存儲我的應用程序的用戶喜好,我有上述相同的概率。

請幫我瞭解我應該選擇什麼樣的選項。我已經做了很多的閱讀,但不知道截至目前。請幫我用什麼標準的事情可以做,什麼會更好

感謝

+0

爲什麼不嘗試一個,看看它如何適用於您的應用程序? MongoDB中沒有表格。他們被稱爲集合。沒有列。他們被稱爲領域。 – WiredPrairie

回答

1

是,存儲在一個貓鼬模型中的所有用戶,與activated場。這樣可以簡化一些可能的數據庫查詢,例如獲取所有用戶的列表(激活或不激活)或檢查用戶名是否已被佔用。

您還應該將配置文件的詳細信息作爲字段存儲在同一模型中。如果您不使用這些參數進行查詢,請不要爲它們編制索引。在我看來,將它們作爲子文檔並不是很有用,只有計劃爲每個用戶配置一組配置文件詳細信息(多個配置文件)時纔有意義。

+0

感謝您的意見。 –

+0

你認爲我不應該得到這個配置文件數據到另一個模型? –

+1

從不同模型中獲取此配置文件數據的問題是,您將需要保持集合之間的完整性---例如,如果刪除了用戶,則還需要刪除配置文件數據條目。 –

相關問題