2011-01-12 30 views
0

我有一個跟蹤每個用戶活動的活動模型。在這個模型中,我有以下列:id,user_id,media_id,type,created_at,updated_at關於活動模型/表的設計問題

我特別關心的一個活動是歌曲視圖。例如。當用戶點擊歌曲時,該歌曲開始播放。同時發生這種情況,每次用戶查看歌曲頁面時,我的應用程序都會爲此創建一個活動。

這意味着我可以爲用戶活動保留一種歷史時間線。即

Foobar listened to Song A 2 hours ago 
Foobar listened to Song A yesterday 
Foobar listened to Song B 2 days ago 
etc 

未來,如果應用程序/網站獲得大量的知名度,這是否會在某種程度上影響數據庫性能?我很擔心這張表會非常快速地爲每個查看歌曲的用戶填充。我不禁要看看YouTube上每個視頻有大約100k ++視圖的視頻。

我應該擔心嗎?還是全部是關於添加索引並確保數據庫可以根據內存和磁盤空間進行擴展?

回答

1

我認爲活動模型做得太多了,因爲您還存儲數據,這是不需要的。

 table 
------------------------ 
user_id  int 
media_id  int 
listened_at TIMESTAMP 

我省略了類型,因爲這應該是在media_id

背景下如果你真的得按次許多命中,一個簡單的數據庫將無法處理這個問題。即使是devent數據庫集羣可能也有問題。但我不會在早期階段擔心這些事情。

+0

我在那裏有一個類型字段的原因。是因爲type可以是View,Like,Comment等。活動模型的目的是存儲所有類型的用戶交互。如果您認爲活動模式做得太多,您有什麼建議? :-) – 2011-01-13 06:38:26