我想为我的用户创建一个类似于新闻源的Facebook,基本上可以执行以下操作
但我不太确定如何在mysql中实现这一点。喜欢什么样的表我需要?这些表的结构是什么?我将在这些表中存储什么?我将如何跟踪用户和朋友的活动。我想建立一个可以扩展的高效系统。如果可能的话,我更喜欢使用PHP和Mysql!
我正在考虑使用NEWSFEED表,当用户做某事(发表评论等)时,我会在该表中为用户的朋友和用户自己添加一个条目,该条目将显示在他们的新闻源上。
表结构如下
uid INT
activity ENUM
activity_id INT
所以,假设我有一个具有以下结构的评论表:
title VARCHAR(255)
message TEXT
如果用户发布到该表并且为该用户创建了ID = 5的条目,则以下条目将添加到NEWSFEED表
uid = 3 activity =“comment”activity_id = 5
这意味着要显示每个用户的新闻源,我必须执行以下操作:
SELECT * FROM newsfeed WHERE UID = ....
FOR EVERY ROW:
CHECK activity type (if activity == 'comment')
**QUERY the corresponding table and display the result (so I would query the comments table an display the person's comment)**
我正在考虑删除超过> 3个月的条目,以防止表变得太大。但我不喜欢我正在为每个活动类型进行独立查询(正如我上面查询的那样,我查询了COMMENTS表以显示其ID在NEWSFEED表中提到的注释)。