2014-01-20 35 views
1

我們正在開發一個將爲多個客戶端提供服務的Web應用程序。每個客戶將有多個用戶。我們希望爲我們設計的模型架構是這樣的:Django - 將用戶存儲在Mongo中的文檔中

  1. 客戶端1
    1. 用戶1-1
    2. 用戶1-2
    3. 用戶1-3
  2. 客戶端2
    1. 用戶2-1
    2. 用戶2-2
    3. 用戶2-3
  3. 等...

我有兩個擔心,因爲我們寫這在Django通過MongoEngine幫助。通過嵌套我們的用戶(這反過來又是登錄),這對認證來說是一種痛苦嗎?換句話說,MongoEngine是否支持這種類型的模式?並且可能以某種方式將當前的Client對象附加到請求參數中?

回答

1

如何查詢代碼並使用數據應該有助於推動如何設計模式。

查詢會記錄用戶的內容是什麼?可以匹配整個文檔($elemMatch),如果存儲在列表中,則必須這樣做。否則,如果使用dot notation,則可以匹配User1用戶名和User2密碼。

所以你可以使用該模式,但你必須小心,可能不是最佳實踐,特別是如果你想看看嵌套的用戶對象,這將是繁瑣的。還有大的無界列表將不會表現良好。

至於將用戶添加到請求上下文 - 您可以始終創建您的own context來做到這一點。

翻轉它並使用Django中的身份驗證框架可能會更好,但將客戶端添加到用戶。

相關問題