Opsi 1, 2, dan 3 memiliki satu kelemahan yang sangat serius:Anda harus memodifikasi skema tabel yang mendasarinya ketika seseorang memimpikan atribut baru. Dalam kasus Opsi 1 masalahnya diperparah dengan kemungkinan bahwa jenis peralatan baru akan diperkenalkan. Seberapa yakin Anda bahwa kumpulan atribut tetap sepanjang waktu? Seberapa senangkah Anda saat melakukan pemadaman atau memberi tahu klien bahwa tidak, Anda tidak dapat memiliki atribut baru?
Jika Anda sangat mungkin untuk melakukan kueri dari atribut umum, Anda dapat mencoba hibrida 3 dan 4, dengan tanda pisah 2 dilemparkan ke dalam pemisahan pada jenis atribut daripada jenis peralatan, yang tampaknya jauh lebih tidak stabil. Opsi 4, jika saya mengerti dengan benar, adalah versi bentuk normal dari opsi 1 yang menyelesaikan semua masalah bawaannya (kerapuhan dan kerapuhan).
INVENTORY( id*, model, manufacturer, serial )
ATTRIBUTE( id*, name, type, description )
INVENTORY_FACT_STRING( inv_id*, attr_id*, value )
INVENTORY_FACT_NUMBER( inv_id*, attr_id*, value )
INVENTORY_FACT_LIST_STRING( inv_id*, attr_id*, ordinal*, value )
dll.