我有一个包含许多表格的数据库:[粉丝,收藏夹,帖子......等)
这些表定义了用户可以实现的不同活动,他可以发送帖子,将其他人添加到收藏夹并关注其他人。
我想要做的是从这些表中提取数据,并构建实时新闻源。
我有两个选择:
1-为通知创建一个单独的表(这样我就不必从多个表中获取数据,然后使用Javascript计时器每隔x秒返回一次结果。
2-使用XMPP服务器...每隔x秒发送(或推送)通知,而不实际发送任何ajax查询。
对于这两个选项,我不知道是否应该连接到这些表来获取新闻源,或者只是为通知创建一个单独的表。
我搜索了这个主题,但我找不到真正有用的东西,任何链接都会受到赞赏。
答案 0 :(得分:2)
如果您的数据是normalized,您应该能够通过一个查询(使用JOIN)获取所有数据,或者如果您想从一个表中查询,则可以尝试创建View。最好将数据保存在适当的表中,以避免重复数据。
推送通知在服务器上更容易,因为它们没有收到来自每个客户端的请求。根据您的负载,您可能会使用简单的AJAX请求。
答案 1 :(得分:2)
新闻请求的请求将非常频繁。因此,您必须保持代码快速运行,并尽量减少资源(CPU-time
,database query
)。
我建议你选择第一个选项。它符合您的要求,而且非常简单。
因为你有很多表,所有表都会grow bigger day by day
。每次连接它们以获取新闻源都需要很长时间并增加数据库的负载。另一方面,你查询sql会很复杂。
像@Curtis Mattoon所说:avoid having to duplicate data
,但有时,我们需要spend more space for less time
。
所以我建议创建一个新表来存储通知数据。您甚至可以定期从此表中删除旧数据。
与此同时,您的sql和php code
新闻Feed非常简单且运行速度很快。