1

我想创建一个仅使用 mysql 的 activity_feed 系统。该活动将显示给进行该活动的用户的关注者。活动本身将被写入另一个缓存表中(经过对其他数据库的一些询问,例如“帖子”)。

**ACTIVITY_FEED** <- fixed/length
-----------------
AID - INT, PRIMARY KEY, A_I <- *id of activity*
UID - INT <- *id of user* 
TYPE - ENUM(post,comment,like,etc) <- *type of activity*
RID - INT <- *id relative to activity type (for example "posts" table id)*
TIMESTAMP - DATETIME

**ACTIVITY_FEED_INDEX** <- fixed/length
------------------
UID - INT <- *id of the user that request the activity feed. (the follower)*
AID - INT <- *ID of the activity that the follower will seen*
TIMESTAMP - DATETIME <- *same timestamp of activity*
PRIMARY KEY uid,aid

**ACTIVITY_FEED_CACHE**
------------------
AID - INT <- *if of activity*
CACHE_DATA - TEXT <- *json string of activity parameters* //no search needed

这个想法是在 ACTIVITY_FEED_INDEX 中插入一行,每个人都在关注进行活动的用户。(推送模式)

然后,使用这样的查询:

SELECT cache.cache FROM activity_feed_index as index INNER JOIN activity_feed_cache AS cache ON cache.aid = index.aid WHERE index.uid = 'USER_ID' 

用户将获得他关注的用户的所有活动。

它是可扩展的吗?它是标准化的吗?没关系?

PS:目前我无法使用 REDIS 或其他 NoSQL 系统。所以,只有MYSQL。

PS:对不起我的英语不好:O

4

0 回答 0