Я разрабатываю приложение, которое позволяет людям запрашивать гарантию на конкретную работу. Они предоставляют информацию, например, какой продукт использовался и т. Д. (Некоторые из их вариантов приведены в списке элементов, уже находящихся в системе. Затем мы формируем для них гарантию на основе этих вариантов.
Я борюсь с концепцией превращения утвержденной гарантии в моментальный снимок, когда это зависит от связанных записей, которые могут изменяться со временем.
Самый простой способ, который я могу придумать, это не хранить отношения с исходными таблицами (например, product_id), а скорее записать продукт в виде строки. Это кажется немного грязным. Другой способ - не допускать удаление / изменение продукта из таблицы продуктов, если к нему не приложены никакие гарантии. Возможно, реализуете столбец replace_with, который указывает на отредактированную версию того же продукта? Я делал это раньше в корзине, и это работало довольно хорошо. У меня просто много отношений, и мне интересно, есть ли способ, о котором я не думал?