我有一个包含许多表的数据库:[followers,favorites,posts ...etc]
这些表格定义了用户可以实现的不同活动,他可以发送帖子,将其他人添加到收藏夹和关注其他人。
我想做的是..是从这些表中提取数据,并构建一个实时新闻提要。
我有两个选择:
1-为通知创建一个单独的表(这样我就不必从多个表中获取数据,然后使用Javascript计时器每x秒返回一次结果。
2-使用XMPP server...that每隔x秒发送(或推送)一次通知,而不实际发送任何ajax查询。
对于这两个选项,我不知道是应该连接到这两个表来获取新闻提要,还是只为通知创建一个单独的表。
我搜索了这个主题,但我还没有找到真正有帮助的东西,任何链接都将不胜感激。
发布于 2013-07-21 21:16:44
如果您的数据是normalized,您应该能够通过一个查询(使用连接)提取所有数据,或者,如果您想从一个表中查询,您可以尝试创建一个View。最好始终将数据保存在适当的表中,以避免重复数据。
推送通知在服务器上更容易,因为它们不会从每个客户端接收请求。根据您的负载,您可能可以使用简单的AJAX请求。
发布于 2013-07-21 21:38:13
对新闻提要的请求将非常频繁。因此您必须保持代码快速运行,并尽可能少地占用资源(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将非常简单,并且运行速度很快。
https://stackoverflow.com/questions/17772634
复制相似问题