У меня есть приложение, которое обрабатывает и хранит заказы. Каждый заказ состоит из позиций, которые имеют различные вещи, такие как цены, размеры, цвета и т. Д. Мой вопрос заключается в том, как мне сохранить эти данные в течение долгого времени, не привязывая их к базовым данным, которые могут быть изменены.
Например, кто-то заказывает что-то, что состоит из 5 вещей стоимостью 1 доллар каждая, всего на 5 долларов. Однако в какой-то момент в будущем стоимость отдельных вещей изменится до 0,50 доллара. Теперь, когда я поднимаю старый заказ, его общая стоимость составляет $ 2,50 вместо $ 5.
Первоначально я думал о том, чтобы просто не допустить обновления дочерних таблиц, однако это не совсем осуществимо, поскольку цены основаны на огромных ценовых сетках, которые клиент хочет обновлять, а не создавать новые при каждом изменении цены. в малейшей степени. Настройка каждой ценовой сетки занимает несколько часов, и цены меняются каждые несколько дней.
Другая мысль состоит в том, чтобы сериализовать весь заказ и работать с этим. Однако, это затрудняет обновление системы и изменение чего-либо. Старые заказы больше не будут отображаться должным образом и могут даже привести к сбою системы.
Это довольно общая проблема, и я ищу точку зрения наилучшей практики.