У меня есть вопрос, который касается вопроса производительности и Mongo Design.В настоящее время проект, над которым я работаю, будет включать уведомления, подобные Facebook, где пользователь будет получать сообщения о событиях, происходящих на сайте.Проблема заключается в выборе того, будут ли уведомления представлять собой либо собственную коллекцию, либо массив, встроенный в пользователя.Требования к уведомлениям включают:
- Изменение статуса с прочитанного / непрочитанного и упорядочение по дате (другая сортировка может быть позже).
- Уведомления должны быть в режиме реального времени.
- Уведомления удаляются каждые 2 недели.
Исправьте мои ошибки, если я ошибаюсь, так я думаю.
Если уведомления встроены в пользовательский документ, онибудет медленнее, дороже и дольше развиваться и труднее поддерживать \, потому что:
Для упорядочения и сортировки их нужно будет уменьшить на карте, чтобы найти только непрочитанные и упорядоченные посвидание.Или это может быть сделано с помощью PHP, но это более длительный процесс.
Обновление / удаление записи уведомления во встроенном массиве занимает больше времени для поиска этого документа и может привести к ошибкам, еслииндекс уведомления изменился (IE: новое уведомление вставлено в документ).
Уведомления будут добавлены в очередь на PHP и / или JavaScript для последующего извлечения.Потребуется больше времени, чтобы выяснить, как изменить очередь (добавить / удалить), поскольку у них не будет идентификаторов.
Если они хранятся в своей собственной коллекции и каждое уведомление имеетего собственный идентификатор.
Уменьшение карты не требуется, и его легче найти и отсортировать.
Возможно, есть проблемы с производительностью, если естьмного уведомлений (это правда или ложь?).
Проще обновлять очереди, потому что присутствуют идентификаторы.
Проще и может большенадежно обновлять и удалять уведомления, поскольку идентификаторы не меняются.
Могу ли я получить некоторые отзывы по этому поводу?Моя логика правильная или неправильная?