Rekadian, ada isu yang cukup menarik. Apakah sebaiknya setiap tabel di soft delete? Maksudnya daripada dihapus dari database, diberikan flag is_deleted.
Mengapa soft delete? In case ada kesalahan user menghapus data, dan space penyimpanan harganya sekarang sudah murah.
Terkait performansi, saya baca bisa dibuat partisi. Ada opsi lain juga untuk dibuat tabel archive. Misalnya data setiap 1 tahun dimasukan ke dalam tabel archive.
Silakan berkomentar 🙂
Kalau menurut saya ide “is_deleted” sendiri cukup bagus mengingat hal tersebut tentunya dapat menjamin bahwa data masih bisa di-retrieve kembali jika fitur “delete” ada. Akan tetapi, hal itu bisa membuat biaya akses database menjadi lebih besar terutama ketika perlu me-retrieve semua data pada database, dan harus dipisahkan lagi yang mana sudah di-delete yang mana belum. Tentunya hal ini bisa berpengaruh lagi kedepannya jika digunakan data warehouse karena data warehouse sendiri mengambil data langsung dari database, dan mengakibatkan perlu adanya filter terlebih dahulu.
Kalau untuk tabel archieve, cukup menarik.
Berdasarkan artikel yang saya baca, performance database bisa ditangani dengan partisi berdasarkan is_deleted. Tapi belum dicoba sepertinya agak canggih 😀
Kalau menggunakan archive saja, kira-kira cukup ga ya sebagai kompensasi menggunakan is_deleted?