- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在为基于 Symfony 3 的管理系统开发个人消息模块。 Doctrine 2 用作 DBAL。
为了显示消息,我想按主题对它们进行分组(并且因为消息只有一个发件人和一个收件人,按人员划分)。
我正在努力寻找从 MySQL DB(通过 Doctrine)获取消息和排序/分组的最佳方法。
第一个想法是通过数据库请求获取不同的主题列表(针对特定的人)。然后对每个主题提出新的要求。我想这可能比收集此人(发送者或接收者)的所有消息并使用 PHP 函数对它们进行排序/分组更快。另一方面,这可能意味着大量的数据库请求,这可能会减慢整个应用程序的速度。
消息是数据库表示的实体。另一种方法是将每条消息与持续的对话相关联。因此,至少我不必查询主题,尽管我仍然需要查询每个对话。
一般来说,这个应用程序只有大约 30 人使用。所以目前性能并不是什么问题。但我想以合适的方式进行编码,这也可以应用于更大的用户群。
我希望您能给我一些关于处理此问题的方法的意见。
最诚挚的问候,
螺足纲
最佳答案
据我所知,您不想在应用程序中编写 slack 或 facebook 代码,而是希望在现有模块中添加一些可扩展性层,以防系统用户数量增长。这就是为什么我建议延迟加载将是您可以应用的最简单的解决方案。只需加载用户可以通过查询在屏幕上看到的消息量 - 无论消息表如何增长,它都将保证查询的大小相同。比 javascript 和通过 ajax 的附加查询(应该加载完全相同批处理的实体)将来加载/渲染新消息。您可以通过谷歌轻松找到有关应用延迟加载的更多信息。并且不要忘记,您可以在表示消息的 html 容器上添加各种数据属性(如数据通知、数据公告等)。它们可用于通过 JavaScript 对用户计算机上的消息进行排序/分组,而不会对服务器资源造成任何额外负载。希望对您的问题有所帮助!
关于php - 通过查询或 php 将来自 MySQL 的消息按主题分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48355144/
我是一名优秀的程序员,十分优秀!