我目前正在为基于symfony3的管理系统开发个人消息模块。原则2用作dbal。
为了显示消息,我想按主题对它们进行分组(因为消息只有一个发送者和一个接收者,所以按人分组)。
我正在努力寻找从mysql数据库获取消息的最佳方法(通过条令)和排序/分组。
第一个想法是通过数据库请求获得一个不同的主题列表(对于特定的人)。然后对每一个主题提出新的要求。我想这可能比收集此人(发送者或接收者)的所有消息并用php函数对它们进行排序/分组要快。另一方面,这可能意味着大量的db请求,这可能会降低整个应用程序的速度。
消息是db表示的实体。另一种方法是将每条消息都与持久化的对话联系起来。因此,至少我不必对主题进行查询,尽管我仍然需要对每个对话进行查询。
一般来说,这个应用程序只有大约30人使用。所以现在表演还不是什么大事。但我想用一种合适的方式来编写代码,这也可以应用于更大的用户群。
我希望你能就处理这个问题的方法给我一些建议。
致以最诚挚的问候,
斯皮甘德罗梅达
1条答案
按热度按时间tct7dpnv1#
据我所知,您不想在应用程序中编写niether slack或facebook代码,而是希望在现有模块中添加一些可伸缩性,以防系统用户数量增长。这就是为什么我可以建议延迟加载将是您可以应用的最简单的解决方案。只需加载用户可以通过查询在屏幕上看到的消息量,就可以保证无论消息表如何增长,查询的大小都是相同的。而javascript和其他通过ajax的查询(应该加载完全相同的一批实体)将被用于加载/呈现新消息。你可以通过google轻松找到更多关于延迟加载的信息。不要忘记,您可以在表示消息的html容器上添加各种数据属性(如数据通知、数据公告等)。它们可以用来通过javascript对用户机器上的消息进行排序/分组,而无需额外加载服务器资源。希望这对你的问题有帮助!