2015-07-10 86 views
0

我正處於移動應用程序開發的規劃階段,我需要您的幫助來決定是否應該使用MySQL或MongoDB。首先讓我描述一下數據:我應該使用MySQL還是MongoDB?

我有一套用戶可以用不同方式瀏覽和評分的項目(例如電影)。項目總數約爲20 000個,不會增長或縮小。

每個用戶將能夠對每個項目(數值)進行評分並寫入分配給每個項目的評論。我預計普通用戶可能會得到40個不同的項目,但我的希望更高!

的typcial查詢將

  1. 給我滿足某些條件的所有項目,並讓我瀏覽。例如:給我所有在00年代在歐洲製作的恐怖片。

  2. 給我一個特定用戶已經取得的所有電影。

我也想做一些服務器端計算,例如每部電影的平均分數,以及每次用戶獲得一個項目的新分數時,應該更新這個平均值。

對於MySQL我有3個不同的表的數據庫,這個(項目,用戶,分數)和MongoDB的我正在考慮與1個採集數據庫,這樣的:

{ 
    "name":"Inception" 
    "year":2010 
    "director":"Christopher Nolan" 
    "scores" : [ 
    { 
     "user_id": 1234 
     "scoreA" : 3, 
     "scoreB" : 5, 
     "scoreC" : 4, 

    }, 
    { 
     "user_id": 1235 
     "scoreA" : 4, 
     "scoreB" : 3 
    }, 
} 
{ 
    "name":"Titanic" 
    "year":1997 
    "director":"James Cameron" 
    "scores" : [ 
    { 
     "user_id": 1201 
     "scoreB" : 5, 
     "scoreC" : 5 
    }, 
    { 
     "user_id": 1220 
     "scoreA" : 4, 
     "scoreC" : 5 
    }, 
} 
... 

問題:鑑於我的用例,如果我使用MySQL或MongoDB,這有什麼關係嗎?

預先感謝您!

回答

1

與像mysql這樣的關係數據庫一起使用,除非你只是想試試它,否則不需要在這裏使用MongoDb。

由於generell建議使用NoSQL(特別是MongoDb),當你無法改進你的RDMS了。

也看看這個精彩演講:http://www.thedotpost.com/2015/06/neha-narula-consistency-and-candy-crush

+1

這個答案不能更剛愎自用,非事實,即使我親自試過。 – Sammaye

+1

我同意。 NoSQL數據庫不是關於「什麼時候不能改進你的RDMS」,或者是一個更大的「常規」數據庫的兄弟。它們與其他工具完全不同,具有不同的用途。你通常不會建議「當你無法改進你的C++,使用Prolog」時,你會嗎?至少我希望如此。 –