簡體   English   中英

跟蹤用戶活動日志-SQL與NoSQL?

[英]Tracking User activity log - SQL vs NoSQL?

我有一個mysql數據庫,其中包含諸如User,播放列表,視頻,標簽的表

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

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
a。)另一件事是,由於點亮的活動將是巨大的,檢索數據的速度應該很快,因此我讀到面向文檔的數據庫在這種情況下表現良好,因為不需要在表之間進行聯接
b。)由於活動日志可能不包含一個變量,所以取決於活動的發生,因此關系模式可能不是一個好的解決方案。

我想了解更多,請分享知識:)
謝謝

您是正確的,任何關系數據庫中的主要問題都是聯接。

因此,您可以在mongodb或mysql中創建跟蹤系統,只需避免加入:

因此結構將如下所示:

id 
activity_type - int
user_id
date
field1
field2
filed3

其中activity_type(Signup = 1,CreatedPlaylist = 2,...)

為避免與用戶表聯接,您應在每個活動行中添加一些與用戶相關的數據(需要顯示的數據,例如first_name,last_name)。

使用上面提供的解決方案,您可以使用mysql,並且速度相同。 當您將許多需要嵌入關系數據庫的東西嵌入文檔中時,Mongodb會更快。

作為長期的關系用戶,在我看來,決定取決於您是否進行金融交易或跟蹤實物。 Relational是為“錢和東西”發明的。 它非常擅長並保持很高的正確性標准。

但是,當您不必平衡賬本時,或者確保您不偶然出售的小部件數量不多時,請使用自己喜歡的東西。 Mongo,Couch,隨便。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM