Я разрабатываю чат в своем мобильном приложении. Я использую firebase для управления чатом.
В системе чата есть несколько изолированных команд, и данные денормализованы, чтобы гарантировать, что мы получаем только необходимые данные без какой-либо глубокой вложенности.
Текущая схема высокого уровня, которая у меня есть, выглядит следующим образом:
Проблема, которую я вижу в этой схеме, заключается в том, как обрабатывать сценарии обновления. Я наблюдаю следующие основные сценарии обновления:
Если пользователь меняет имя, необходимо обновить все сообщения. Также все каналы прямых сообщений должны отображать обновленное имя профиля пользователя.
Точно так же, если имена групп обновлены, нам нужно будет обновить все user_channels
Что было бы лучше для обработки сценариев обновления?
Один из вариантов, который я могу придумать, - это использовать адресную книгу, чтобы я мог искать на основе идентификаторов пользователей. Любые предложения будут полезны.
Приятно слышать. Подход «безразличия» на удивление популярен. :-)
@FrankvanPuffelen, спасибо, что указали на ответ. В нем описаны все различные подходы. Лично для этого приложения я буду использовать обновление транзакций с использованием облачных функций для некоторых сценариев и в некоторых случаях не обращаю внимания.