Mengapa? Lakukan semua entitas Anda perlu diperluas dengan cara ini? Mungkin tidak -- di sebagian besar aplikasi, paling banyak ada satu atau dua entitas yang akan mendapat manfaat dari tingkat fleksibilitas ini. Entitas lain sebenarnya mendapat manfaat dari stabilitas dan kejelasan tidak berubah setiap saat.
EAV adalah contoh dari Efek Platform Dalam :
Dengan kata lain, sekarang Anda bertanggung jawab untuk menulis kode aplikasi untuk melakukan semua hal yang sudah disediakan oleh RDBMS yang tepat, seperti batasan dan tipe data. Bahkan sesuatu yang sederhana seperti membuat kolom wajib seperti NOT NULL
tidak berfungsi di EAV.
Memang benar terkadang sebuah proyek membutuhkan banyak tabel. Tapi Anda membodohi diri sendiri jika Anda pikir Anda telah menyederhanakan proyek dengan hanya membuat dua tabel. Anda masih akan memiliki Entitas yang berbeda sebanyak yang Anda miliki dengan tabel, tetapi sekarang terserah Anda untuk menjaganya agar tidak berubah menjadi tumpukan sampah.
Sebelum Anda menginvestasikan terlalu banyak waktu ke EAV, baca cerita ini tentang perusahaan yang hampir berhenti berfungsi karena seseorang mencoba membuat repositori data mereka fleksibel secara sewenang-wenang:CaRMa Buruk .
Saya juga menulis lebih banyak tentang EAV dalam posting blog, EAV FAIL , dan dalam bab buku saya, SQL Antipatterns:Menghindari Jebakan Pemrograman Basis Data .