id
user_id (int)
activity_type (tinyint)
source_id (int)
parent_id (int)
parent_type (tinyint)
time (datetime but a smaller type like int would be better)
activity_type告诉我活动的类型,source_id告诉我活动相关的记录。因此,如果活动类型意味着“添加的收藏”,那么我知道 source _ ID 指的是收藏记录的 ID。
parent_id/parent_type对我的应用程序很有用——它们告诉我这个活动与什么相关。如果收藏了一本书,那么 father _ id/father _ type 会告诉我,该活动与具有给定主键(id)的一本书(type)有关
我在 (user_id, time)上建立索引并查询属于 user_id IN (...friends...) AND time > some-cutoff-point的活动。丢弃 id 并选择一个不同的聚集索引可能是一个好主意——我还没有对此进行过实验。