2014-12-29 32 views
0

我正在使用MongoDB作爲我的應用程序數據庫。該應用程序需要爲每個用戶登錄並在成功登錄時獲取個人用戶數據。如何爲多用戶應用程序創建數據庫模式(無SQL)

現在我想知道在應用程序上支持 多用戶的可能方法是什麼。當我將所有用戶的數據存儲到單個數據庫表中時,是否會有任何數據庫鎖定 問題?

我目前有一個'用戶'表來存儲用戶登錄信息和'InfoTable'來存儲信息。對於'InfoTable'的每一行,我都有'userId'也與信息一起存儲。

+0

據我所知,mongo鎖定模式。但是擁有nosql數據庫背後的想法並不是創建不同的表/模式,您的應用程序可以維護關係等。用戶和用戶信息應該在我看來是在同一個集合中。你可以擁有一個用戶poco類,它的userinfo屬性爲複雜類型。這樣您就可以一次性獲得關於用戶的所有數據。 – qamar

+0

@qamar是否會影響應用程序性能,因爲所有數據都存儲在一個集合中。此外,當多個用戶修改表時,鎖定問題不會減慢操作。 – jsbisht

+0

NoSql數據庫相當快:)當你遇到性能問題時,也有解決方案。您可以閱讀有關性能調整提示。我認爲有一個集合中的相關數據將會更好,因爲不需要對數據庫進行太多的調用以獲得零碎的文件 – qamar

回答

1

據我所知,mongo鎖定文件。但是擁有nosql數據庫背後的想法並不是創建不同的表/模式,您的應用程序可以維護關係等。用戶和用戶信息應該在我看來是在同一個集合中。您可以將具有userinfo的用戶poco類作爲屬性。這樣您就可以一次性獲得關於用戶的所有數據。就性能而言,如果您擁有所有相關信息,您將擁有較少的讀取請求,並且沒有合併數據來形成有意義的對象。

相關問題