2010-11-18 95 views
12

我正在調查一個將成爲社交網站風格網站的新項目。我正在閱讀RavenDb,我喜歡它的許多功能的外觀。我還沒有讀過關於nosql的所有內容,但我想知道它是否適合最適合的位置,而老派的sql仍然是其他內容的最佳選擇。NoSql/Raven DB實施最佳實踐

我在想,權限插入將是理想的社會網絡風格的網站 - 但它會真正執行的環境中,數據庫將被打擊 - 或者它是一個更優化的報告風格系統可以不斷在數據庫中拋出新的數據結構並報告這些結構。

我渴望使用正確的工具 - 我將使用MVC3,Windsor + Nhibernate + Sql服務器或RavenDb。

我應該堅持舊學校的SQL還是與塊上的新孩子一起去:ravendb?

回答

20

這個問題可能非常接近於主觀(即使實際上並非如此),您在談論NoSQL就好像它只是一件事情,事實並非如此。

你有

  • 圖形數據庫(Neo4j的等)
  • 的map/reduce風格文件數據庫(沙發,烏鴉),
  • 文檔數據庫,它試圖覺得像普通數據庫(蒙戈)
  • 鑰匙/價值商店(卡桑德拉等)
  • 莫爾去這裏。

他們每個人都試圖解決通過不同的手段,以不同的問題,以及是否你會使用其中一個在傳統的關係存儲是

  • 適合
  • 的問題的問題個人偏好

在一天結束時,爲數據存儲爲單個系統,文檔數據庫或關係存儲是概率巧妙的是你想要什麼,儘管對於你的系統的不同部分,你最終可能會利用圖形數據庫(用於計算鄰居等)或者鍵/值存儲區(比如Facebook爲收件箱消息做/做)。

選擇文檔存儲作爲主存儲而不是關係文件存儲的主要好處是您不必擔心試圖將對象映射到表集合中,並且配置開銷較低參與這樣做。

另一個缺點/好處是你必須學習新的東西並且一路上犯錯。

所以我的答案如果我要直接?

  • RavenDB將是合適的
  • SQL將是合適的

你喜歡哪使用?現在我可能只是爲了Raven而去,知道我可以將數據轉儲到關係存儲中用於報告目的,並且可能也爲我的系統的其他部分做同樣的工作,並且可以不用去自由文本搜索和快速寫入/快速讀取通過定義單獨的讀/寫存儲的努力是全面的勝利。

但這就是我,我有偏見。

+1

這是一個很好的答案 - @ mikehadlow在tardis銀行中使用它,這是一個很好的學習來源,所以我將潛入其中。您的意見+一些同事足以說服我,有時間投資這裏。權限的東西看起來很有趣 - 但是這會遭受與rhino.security相同的可伸縮性問題嗎? – iwayneo 2010-11-19 15:15:17

+0

我沒有使用權限的東西,我傾向於做的事情比當我做的時候粗糙一點。完全取決於你如何使用它我想象 – 2010-11-19 17:03:36