我正在开发一个社交网络应用程序,并希望创建一个活动提要,以便人们可以及时了解他们的所有联系(经典的 facebook 流)。我有一个名为activity
setup 的数据库表,如下所示:
activity_id (int)
user_id (int) //who posted it
group_id (int) //the group of connections that have permission to view
type (enum) //the type of activity performed
time (datetime) //the time the activity was performed
然后我会做一个select * from activity where user_id in (connections)
以获取最新消息。
这就是问题所在。用户的活动并不总是对完整的连接集具有可见性。用户可以创建用户 ID 组,以在他们的超级连接集中形成较小的集合。就像 facebook 允许您指定谁看到特定帖子而不是允许所有朋友看到它一样。
我有一个groups
具有以下架构的单独表设置:
group_id (int)
connection_id (user_id, int)
user_id (group creator)
我的活动表中有一个 group_id。group_id 是指向有权查看帖子的连接子集的链接。
我的问题是,执行这种类型的提要的最佳方法是什么,是否有一个最佳的单一选择语句可以让我获得所需的输出(我已获准查看的连接活动列表)?
谢谢。