これが純粋に「アーカイブ」の目的である場合は、リビジョン用の別のテーブルの方が適している可能性があります。
ただし、以前のリビジョンを現在のリビジョンと同等に扱う必要がある場合(たとえば、ユーザーが製品を以前のリビジョンに戻すことができるようにする場合)、データをコピーするのではなく、単一の製品テーブルを保持するのがおそらく最善です。テーブル間。パフォーマンスが心配な場合は、これがインデックスの目的です。
製品テーブルの複合主キーを作成できます。 PRIMARY KEY (product_id, revision) 。 revisionが最も高い行を選択することにより、現在のリビジョンを見つけるためのストアドプロシージャかもしれません。 特定のproduct_idの場合 —便利になります。