存储在数据库中或使用javascript准备数据

时间:2012-02-24 00:43:40

标签: javascript mysql json

我正在使用问题中的建议实施活动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

1 个答案:

答案 0 :(得分:2)

我的选择是LEFT JOIN选项。但是,标签不会 分配JavaScript。如果使用服务器端语言输出流,则可以同时输出标记。

选项#2很糟糕,因为如果您将来需要,它会阻止您使用SQL对标记进行(高效)查询。