У меня есть вопрос о дизайне приложения, касающийся обработки наборов данных в определенных ситуациях.
Допустим, у меня есть приложение, в котором я использую некоторые сущности. У нас есть Заказ, содержащий информацию о клиенте, крайнем сроке и т. д. Затем у нас есть сущность Сервиса, имеющая связь один ко многим с Заказом. Служба содержит свое имя. Кроме того, у нас есть сущность Rule, которая устанавливает некоторые правила относительно того, что вычитать из материального запаса. Он имеет отношение один ко многим с сервисным объектом.
Теперь мой вопрос: как справиться с ситуацией, когда я создаю заказ и сохраняю его в базе данных с его отношениями, но в то же время я не хочу, чтобы изменения вносились в объекты, которые оказались в видимая связь с сгенерированным заказом. Мне нужно относиться к Заказу и связанным с ним данным как к некоему журналу, чтобы удаление услуги из таблицы или изменение набора правил не меняло уже сгенерированные заказы, услуги и правила, которые использовались во время процесс.
Обычно я бы справился с этим, дублируя Услуги и Правила и вставляя их в новую таблицу, чтобы данные не зависели от тех, которые используются при создании Заказа. Order просто указал бы на дублированные данные вместо исходных, что решило бы мою проблему. Но это дублирование данных, и, как мне кажется, это не лучший способ.
Итак, если вы поняли мой вопрос, знаете ли вы лучшую идею для решения такой проблемы? Извините, если то, что я написал, не имеет никакого смысла. Просто скажи мне, и я постараюсь выразиться лучше.