关于活动模型/表的设计问题

时间:2011-01-12 09:08:19

标签: ruby-on-rails database postgresql

我有一个活动模型,可以跟踪每个用户的活动。在这个模型中,我有以下列: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

将来,如果app / site获得了很多人气,这会在某些方面影响数据库性能吗?我担心这个表会为每个观看歌曲的用户快速填充。我不禁看到youtube上的视频,每个视频的观看次数大约为100k ++。

我应该担心吗?或者是关于添加索引并确保数据库可以在内存和磁盘空间方面进行扩展?

1 个答案:

答案 0 :(得分:1)

我认为活动模型做得太多,因为你也存储数据,这是不需要的。

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

我省略了类型,因为这应该在media_id

的上下文中

如果你真的每个视图获得很多点击,一个简单的数据库将无法处理这个问题。即使是devent数据库集群可能也存在问题。但我不会在早期就担心这些事情。