Группировка сообщений по темам из MySQL через запрос или php

0

В настоящее время я работаю над личным модулем сообщений для системы управления на базе Symfony 3. Doctrine 2 используется как DBAL.

Для отображения сообщений я хочу сгруппировать их по предмету (и потому, что сообщение имеет только один отправитель и один получатель, лицами).
Я изо всех сил стараюсь получить сообщения из базы данных MySQL (через Doctrine) и сортировки/группировки.

Первая мысль заключалась в том, чтобы получить отдельный список предметов (для конкретного человека) по запросу базы данных. Затем создайте новый запрос для каждого предмета. Я предполагаю, что это может быть быстрее, чем собирать все сообщения этого человека (отправителя или получателя) и сортировать/группировать их с помощью функций PHP. С другой стороны, это может означать огромное количество запросов db, что может замедлить работу всего приложения.

Сообщения представляют собой объекты, представляющие собой db. Другой способ может состоять в том, чтобы связать каждое сообщение с постоянным разговором. По крайней мере, мне не нужно делать запрос для предметов, хотя мне все равно приходится запрашивать каждый разговор.

Обычно это приложение используется всего около 30 человек. Таким образом, производительность на данный момент не очень важна. Но я хочу соответствующим образом закодировать это, что также можно применить к более широкой базе пользователей.

Надеюсь, вы могли бы дать мне немного информации о способах решения этой проблемы.

с уважением,
spigandromeda

  • 0
    Это слишком широко. Сядьте с любой основной книгой или учебником.
  • 0
    @Strawberry большое спасибо! Я не думаю, что это все равно что спрашивать, как определить переменную в php ... так что немного более точный совет, где искать, было бы неплохо.
Показать ещё 3 комментария
Теги:
doctrine
doctrine2

1 ответ

0

Насколько я могу судить, вы не хотите кодировать niether slack или facebook из своего приложения, но хотите добавить некоторый уровень масштабируемости в уже существующий модуль, если число пользователей вашей системы будет расти. Вот почему я могу предположить, что ленивая загрузка будет самым простым решением, которое вы можете применить. Просто загрузите только количество сообщений, которые пользователь может увидеть на экране по запросу - он будет гарантировать одинаковый размер запроса независимо от того, как будет расти таблица ваших сообщений. Тогда javascript и дополнительные запросы (которые должны загружать точно такую же партию сущностей) через ajax придут в руки, чтобы загрузить/отобразить новые сообщения. Вы можете легко найти дополнительную информацию о применении ленивой загрузки через Google. И не забывайте, что вы можете добавлять в html-контейнеры различные атрибуты данных (например, уведомление о данных, объявление данных и другие), с помощью которых отображаются сообщения. Они могут использоваться для сортировки/группировки сообщений на пользовательском компьютере с помощью javascript без дополнительной загрузки ресурсов вашего сервера. Надеюсь, что это помогло с вашим вопросом!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню