2013-10-18 206 views
0

在NoSQL數據庫上有投票系統是否合理? 例如,如何將StackOverflow問題存儲到NoSQL數據庫中。 我可以很容易地想象除了問題/投票/用戶之間的關係如何。其他的東西都可以存儲在一個文檔中,比如標籤,評論(假設對帖子的評論數量比較少,在我的情況下我不會有任何評論),用戶信息等......但無法想象如何存儲用戶投票,因爲文檔將變得巨大。其中一個選項是我可以將選票存儲在單獨的集合/文檔中,但這意味着在加載問題時,需要發送另一個請求來檢查用戶是否投了票。NoSQL上的投票系統

+1

這不是一個真正的問題,沒有關於您的模式的具體細節以及您正在處理的規模類型。即使是像MySQL這樣的東西,也可以通過適當設計的模式輕鬆處理數百萬至數億的投票。 – tadman

+0

@tadman正如我所說的幾乎與StackOverflow問題一樣沒有評論。至於規模...該網站還沒有在線,但我期望高流量,這就是爲什麼我想一切準備就緒,避免未來遷移。 – Tamerlane

+0

如果您的網站正在增長,您將*總是*有未來的遷移。不要過度工程設計。你不知道痛點在哪裏,直到你大規模地強調系統。構建最簡單的工作,並對此進行迭代。增量設計總是勝過一些對於您的初始規模來說過於複雜的事情,並且在緊張情況下不足且難以重新設計。 – tadman

回答

1

一個很好的參考是Embedded documents VS Referenced documents MongoDB的文檔,因爲這些是你彷彿被提及到你的問題。沒有完美的解決方案,因爲兩者都有其折衷。您只需根據您希望在數據庫上運行的操作/查詢類型及其頻率來做出最佳決策。老實說,直到你的數據庫開始得到一些嚴重的流量,SQL和NoSQL之間的區別並不重要。預優化最終可能會造成更多的傷害,所以我只會選擇一種最容易部署的方法,並且您可以更加樂於從頭開始。

+0

感謝他們有幫助的鏈接。 – Tamerlane

+1

如果未來很有可能會有大量流量,那麼從一開始就考慮可擴展性的設計將爲您節省大量的時間。 –