Ако това е само за „архивни“ цели, тогава може би отделна таблица за ревизиите е по-добра.
Въпреки това, ако трябва да третирате предишните ревизии еднакво с текущите ревизии (например, ако искате да дадете на потребителите възможността да върнат продукт към предишна ревизия), вероятно е най-добре да запазите таблица с единични продукти, вместо да копирате данни между маси. Ако се притеснявате за производителността, за това са индексите.
Можете да създадете съставен първичен ключ за продуктовата таблица, напр. PRIMARY KEY (product_id, revision)
. Може би съхранена процедура за намиране на текущата ревизия—като изберете реда с най-високата revision
за конкретен product_id
— ще бъде полезно.