2014-06-19 50 views
0

美好的一天。 我開始一個web項目,正在考慮在Java和Spring數據中使用mongoDB。在這個Web項目中,每個用戶都有一個數據庫。換句話說,當用戶登錄(這將是一個共享數據庫,其中只包含登錄信息),我會使用給定用戶的數據庫。這可能嗎?什麼是最優雅的實施方式?按照link的例子,它使用mongodb的春天日期。MongoDB動態數據庫

+0

爲什麼不直接爲每個人使用相同的數據庫並擁有單獨的集合?或者甚至讓每個人都在同一個收藏集中,只是過濾每個用戶的內容... – Lix

+0

是一個很好的選擇。但是,考慮到系統可能有10,000個用戶,並且每個用戶在文檔中有50,000個記錄,可能會導致查詢緩慢? – Smiderle

+0

Mongo應該能夠處理這些數據量。這完全取決於您計劃如何讓用戶查詢他們的數據。 – Lix

回答

0

在應用程序中使用數據庫auth層通常是一個糟糕的主意,您不希望您的應用程序能夠觸摸敏感的東西。

至於使用單獨的數據庫:如果您的工作流程真的需要它,那麼你會想要去單獨的數據庫,而不是集合。這是出於分片原因(分片是每個數據庫)和鎖定原因(鎖仍然是數據庫級),還有很多其他事情都是在數據庫級別。

需要注意的是,除非需要隔離,否則每個數據庫一個用戶是一個非常糟糕的主意,這不僅是因爲成本效益,還因爲需要考慮應用程序的複雜性。