Pemilihan. Denormalisasi atau tidak?

Baru-baru ini, kolega profesional saya dan saya membahas arsitektur sistem tertentu di Internet (lebih tepatnya, di LAN di Habré), dan kami berselisih mengenai satu masalah.



Ada gudang di mana bahan yang berbeda disimpan, ada dokumen untuk penerimaan dan konsumsi bahan, ada catatan dalam dokumen dengan informasi "material, kuantitas", hubungan satu-ke-banyak. Database berisi tabel dengan informasi tentang ketersediaan material di gudang saat ini, ada tabel untuk dokumen dan tabel untuk posisinya. Sebut saja mereka "current_stocks", "documents", "document_positions".



Haruskah tabel "current_stocks" dianggap sebagai denormalisasi data?



Argumen kolega adalah bahwa data dalam "current_stocks" dapat dihitung dari dokumen untuk seluruh masa pakai sistem, jadi ini adalah denormalisasi.



Argumen saya adalah bahwa setiap keadaan saat ini dapat dihitung dari riwayat perubahan, jadi ini bukan denormalisasi. Jika tidak, istilah "normalisasi" tidak akan masuk akal. Ini mengacu secara khusus pada pemodelan keadaan saat ini. Ini adalah model yang berbeda, "current_stocks" memodelkan status gudang, "document_positions" baris teks dalam dokumen.




All Articles