Как поделиться публикацией в твиттере-клоне, используя Firestore в качестве базы данных? - PullRequest
1 голос
/ 03 июня 2019

У меня есть структура данных Firestore и документ, в котором все мои подписчики могут видеть мой recentPosts, запрашивая коллекцию документов на основе поля users документа, в котором запрашивается имя пользователя, как показано ниже.

enter image description here

Мой вопрос заключается в том, как поделиться постом других с моими подписчиками, в настоящее время я дублирую общий пост для моего recentPosts и моего отдельного сотрудника.Коллекция постов документов, но что если пользователь удалит пост, и пост будет передан миллионам пользователей?я должен удалить все общие посты, есть ли лучшее решение?

1 Ответ

1 голос
/ 03 июня 2019

Учитывая ваш выбор в модели данных, необходимость удаления дублированных записей является в значительной степени нормальным решением. Я также не считаю это проблематичным, учитывая, что:

  1. Вы уже написали повторяющийся пост всем этим подписчикам, поэтому удаление - это просто еще одна запись.
  2. Удаление и другие записи относительно редки в большинстве приложений. Если нет, подумайте, действительно ли вы должны дублировать данные всем подписчикам.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...