我正在使用问题中的建议实施活动Feed的设计:How to implement the activity stream in a social network
如果我有这样的架构,我怎样才能最好地查询活动可能有相应标签的活动源(意味着我需要加入其他一些表来获取标签数据)。
示例:
Activity 1: user4 tagged publication with tag1, tag2, tag3
Activity 2: publication rated 3 by user2
Activity 3: publication subscribed to by user9`
活动表:
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)
我对如何实现这一点的想法是:
1。使用LEFT JOIN执行1次查询,然后使用javascript将标记分配给相应的活动。
或
2. 将标记存储为数据库字段中的JSON
答案 0 :(得分:2)
我的选择是LEFT JOIN
选项。但是,标签不会 分配JavaScript。如果使用服务器端语言输出流,则可以同时输出标记。
选项#2很糟糕,因为如果您将来需要,它会阻止您使用SQL对标记进行(高效)查询。