2

我有一个包含许多表的数据库:[关注者、收藏夹、帖子...等)

这些表格定义了用户可以实现的不同活动,他可以发送帖子、将其他人添加到收藏夹和关注其他人。

我想做的..是从这些表中提取数据,并构建一个实时新闻提要。

我有两个选择:

1-为通知创建一个单独的表(这样我就不必从多个表中获取数据,然后使用 Javascript 计时器每 x 秒返回一次结果。

2- 使用 XMPP 服务器...每隔 x 秒发送(或推送)通知,而不实际发送任何 ajax 查询。

对于这两个选项,我不知道是应该连接到这些表以获取新闻提要,还是只为通知创建一个单独的表。

我在主题中进行了搜索,但我还没有找到真正有用的东西,任何链接将不胜感激。

4

2 回答 2

2

如果您的数据是规范化的,您应该能够通过一个查询(使用 JOIN)提取所有数据,或者如果您想从一个表中查询,您可以尝试创建一个视图。最好将数据保存在适当的表中,以避免重复数据。

推送通知在服务器上更容易,因为它们不会接收来自每个客户端的请求。根据您的负载,您可能会摆脱简单的 AJAX 请求。

于 2013-07-21T13:16:43.823 回答
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 codefor news feed 将简单且运行快速。

于 2013-07-21T13:38:12.853 回答