Если это чисто для «архивных» целей, то, возможно, лучше использовать отдельную таблицу для редакций.
Однако если вам нужно относиться к предыдущим ревизиям одинаково с текущими ревизиями (например, если вы хотите дать пользователям возможность вернуть продукт к предыдущей ревизии), то, вероятно, лучше всего вести одну таблицу продуктов, а не чем копирование данных между таблицами. Если вы беспокоитесь о производительности, вот для чего нужны индексы.
Вы можете создать составной первичный ключ для таблицы продуктов, например, PRIMARY KEY (product_id, revision)
. Возможно, будет полезен сохраненный процесс для поиска текущей ревизии - путем выбора строки с наибольшим значением revision
для определенного product_id
-.