Jika ini murni untuk tujuan 'pengarsipan' maka mungkin tabel terpisah untuk revisi lebih baik.
Namun jika Anda perlu memperlakukan revisi sebelumnya sama dengan revisi saat ini (misalnya, jika Anda ingin memberi pengguna kemampuan untuk mengembalikan produk ke revisi sebelumnya), maka mungkin yang terbaik adalah menyimpan tabel produk tunggal, daripada menyalin data antar tabel. Jika Anda khawatir tentang kinerja, inilah gunanya indeks.
Anda dapat membuat kunci utama majemuk untuk tabel produk, mis. PRIMARY KEY (product_id, revision)
. Mungkin proc yang tersimpan untuk menemukan revisi saat ini—dengan memilih baris dengan revision
tertinggi untuk product_id
tertentu —semoga bermanfaat.