Дублирование записей MySQL без потери производительности
Есть таблица с товарами в инет-магазине. Каждый товар после оформления заказа кладется в корзину, где его стоимость (и другие параметры) замораживаются. Сейчас эта заморозка сделана в виде json-строки с первоначальными параметрами, что не является лучшим выходом.
Упрощенно:
products:
id, name, price, description, update_date
cart:
cart_id, product_id, old_parameters, create_date
Если create_date корзины позже, чем дата последнего обновления товара, данные берутся из таблицы товаров. Если меньше - из JSON.
Существует ли человеческий способ реализовать то же самое?
P.S. Еще есть идея завести таблицу products_history и в ней хранить все значения для товаров за все время. Но она по структуре, а часто и данным будет очень похожа на основную таблицу товаров. Хранить все в одной таблице не нахожу рациональным.