Ya, menyimpan nilai yang telah dihitung sebelumnya, berdasarkan data lain dalam database, dalam database adalah hal yang normal. Tapi belum tentu karena alasan yang Anda sebutkan. Saya tidak pernah punya masalah dengan MAX_JOIN_SIZE
.
Alasan utama, dan mungkin satu-satunya, untuk menyimpan nilai yang dihitung adalah kecepatan. Jadi Anda melakukannya untuk nilai yang tidak sering berubah dan yang mungkin digunakan dalam kueri yang menggunakan banyak data dan karena itu mungkin terlalu lambat jika Anda tidak menggunakannya.
Misalnya:Jika Anda ingin mengetahui nilai rata-rata semua pesanan di database Anda, kueri akan jauh lebih cepat jika Anda sudah memiliki total pesanan.
Mengapa, dan bagaimana, Anda memperbarui nilai sepenuhnya terserah Anda. Namun Anda harus konsisten tentang hal itu . Jika Anda menggunakan pola MVC, masuk akal untuk mengintegrasikannya ke dalam pengontrol. Atau dalam istilah sederhana:Setiap kali formulir dikirimkan yang dapat mengubah salah satu nilai, dari mana nilai yang dihitung sebelumnya dihitung, Anda perlu menghitungnya ulang.
Ini adalah demonstrasi yang jelas di mana 'normalisasi' tidak sepenuhnya dipertahankan. Itu tidak terlalu cantik, tapi terkadang sepadan. Anda dapat, tentu saja, berargumen, bahwa nilai yang dihitung mewakili informasi 'baru', dan karena itu tidak bertentangan dengan 'normalisasi'.