Расширенный Эталонный шаблон MongoDB — Управление Дублированием данных

#mongodb

Вопрос:

Я новичок в MongoDB и пытаюсь разобраться в управлении дублирующимися данными. Хорошим примером является Расширенный эталонный шаблон (ссылка). Когда у вас есть две связанные коллекции (например, Клиенты и Заказы), из соображений производительности может иметь смысл дублировать некоторую информацию, которая в противном случае просто находилась бы в указанной коллекции. Так, например, коллекция заказов может дублировать имя клиента, чтобы избежать ненужных соединений с некоторыми запросами.

Я полностью это понимаю. И я полностью понимаю, что вам следует быть осторожным с тем, какие данные вы дублируете («лучше всего, если [дублированные поля] не часто меняются»), так как обновление этих записей может быть дорогостоящим. Чего я не понимаю, так это как вы должны отслеживать, где хранятся все эти данные. Предположим, вам действительно нужно обновить имя клиента. Если эта информация дублируется в нескольких заказах в Коллекции заказов, плюс, возможно, в одной или двух других коллекциях, отслеживание того, где живет все имя клиента (и механизм его изменения), звучит как логистический кошмар!

Существует ли какая-то магия вуду Монго, которая может помочь с такого рода обновлениями, или это просто обязательно грязный процесс?

Комментарии:

1. Вы можете использовать потоки изменений для обновлений такого рода.

Ответ №1:

вы должны управлять всеми изменениями в своем приложении, поэтому вы должны быть осторожны при выборе того или иного шаблона, они не являются серебряными пулями.

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