Ini adalah masalah umum dalam desain database:Pertanyaan apakah akan memisahkan atau "mengarsipkan" catatan yang tidak lagi "aktif".
Pendekatan yang paling umum adalah:
- Semuanya dalam satu tabel, tandai pesanan sebagai "lengkap" sebagaimana mestinya. Kelebihan:Solusi paling sederhana (baik dari segi kode maupun struktur), fleksibilitas yang baik (mis., mudah untuk "menghidupkan kembali" pesanan). Cons:Tabel bisa menjadi sangat besar, masalah baik untuk kueri maupun untuk mis. cadangan.
- Arsipkan barang lama ke tabel terpisah. Memecahkan masalah dari pendekatan pertama, dengan biaya kerumitan yang lebih besar.
- Gunakan tabel dengan partisi berbasis nilai. Itu berarti secara logis (untuk aplikasi) semuanya ada dalam satu tabel, tetapi di belakang layar DBMS menempatkan barang-barang ke dalam area terpisah tergantung pada nilai pada beberapa kolom. Anda mungkin akan menggunakan kolom "lengkap", atau "tanggal penyelesaian pesanan" untuk partisi.
Jenis pendekatan terakhir menggabungkan bagian baik dari dua yang pertama, tetapi membutuhkan dukungan dalam DBMS dan lebih rumit untuk disiapkan.
Catatan:
Tabel yang hanya menyimpan data "arsip" biasanya disebut sebagai "tabel arsip". Beberapa DBMS bahkan menyediakan mesin penyimpanan khusus untuk tabel ini (misalnya MySQL), yang dioptimalkan untuk memungkinkan pengambilan cepat dan efisiensi penyimpanan yang baik, dengan biaya perubahan/penyisipan yang lambat.