2011-05-22 97 views
6

我有一個包含像用戶,播放列表,視頻,標籤表的mysql數據庫。跟蹤用戶活動日誌 - SQL vs NoSQL?

基於此我想收集應用程序上的用戶活動。示例用例可能是:

a.) (user) joined (app) on (date) 
b.) (user) created playlist (playlist) on (date) 
c.) (user) added (video(s)) to playlist (playlist) 
d.) (user) added tags (tag(s)) to video in playlist (playlist) 

給定這樣的數據,這會是設計用戶活動模式的更好選擇嗎? relational(I am using MySQL) or NoSQL(non-relational, like MongoDB)

利於NoSQL的
一)。另一件事是因爲上火將是巨大的活動,檢索數據要快,我讀了面向文檔的數據庫,在這樣的情況下,因爲沒有表之間的連接需要
表現良好)由於活動日誌可能不包含任何取決於活動發生的變量,因此關係模式可能不是一個好的解決方案。

我想更多地瞭解它,請分享知識:)
謝謝

回答

4

你是對的,任何關係數據庫中的主要問題都是連接。

所以,你可以在MongoDB中或在MySQL創建跟蹤系統,只是避免加入:

所以結構是這樣的:

id 
activity_type - int 
user_id 
date 
field1 
field2 
filed3 

其中ACTIVITY_TYPE(註冊= 1,CreatedPlaylist = 2, ...)

爲了避免與用戶的表連接,你應該添加一些用戶相關的數據(數據,你需要顯示,如名字,姓氏),以每個活動行。

隨着提供上述解決方案,你可以留在MySQL,速度會一樣。當你嵌入文檔很多事情時,Mongodb會更快,你需要加入關係數據庫。

+0

我喜歡的方式安德魯,將嘗試利用我的應用程序 – daydreamer 2011-05-23 14:46:20

+0

@daydreamer這種方法:你有沒有試過? ;) – 2011-05-27 05:17:12

+0

嘿安德魯,我有設計準備好了,但我發現很難在遊戲框架與蒙戈插件工作,如果你有興趣在我做了什麼,讓我知道你的電子郵件,我會送你我有什麼在我看來,這將是偉大的,因爲我會得到雙眼清潔我的想法:) – daydreamer 2011-05-27 05:24:24

1

作爲一個長期關係的用戶,在我看來,決定取決於你是否擁有金融交易或跟蹤實物商品。 「錢和東西」是Relational發明的。它非常擅長並保持非常高的正確性標準。

但是,當您不必平衡書籍,或者確保您不會意外地出售比您擁有的更多小部件時,請使用您所熟悉的部件。蒙戈,沙發,不管。