В вашем сценарии, я не думаю, что вы хотите изменить запись, а применить к ней изменения. Таким образом, у вас будут записи, указывающие на изменение цены. Например, если цена на ключ была изменена с 10 до 15 долларов, вам нужно будет добавить запись, указывающую изменение цены на + 5 долларов.
Весь смысл разделения записей и дублирования заключается в том, чтобы гарантировать, что данные в POS (точке продажи) такие же, как и сейчас. Если это не так, вы можете легко увидеть, какие изменения произошли в ценообразовании и когда.
Скажем, вы опубликовали виджет B за 25 долларов с описанием, в котором говорится, что у него Z-ключ. Позже вы узнаете от производителя, что у него есть X-Dongle, а не Z-Dongle, и в результате вам нужно снизить цену. Между тем, как вы опубликовали и исправили ошибку, кто-то покупал указанный виджет за 25 долларов.
Затем этот клиент звонит после обнаружения отсутствия Z-Dongle и хочет вернуться и получить полный возврат средств. За исключением того, что теперь у вас есть их запись, показывающая, что они купили продукт с X-Dongle за 15 долларов меньше, чем они первоначально заплатили. Представитель отдела обслуживания клиентов говорит ему, что в описании CLEARLY говорится, что у него есть X-Dongle - что теперь?