次の表を使用することは、これまでのベスト プラクティスまたは推奨事項ですか?
id, uid, fieldname, fieldvalue
4, 12, gender, male
5, 12, age, 21-30
6, 12, location, 5
7, 13, gender, female
8, 13, age, 31-40
9, 13, location, 5
10, 14, gender, female
11, 14, age, 31-40
12, 14, location, 6
13, 15, gender, male
14, 15, age, 21-30
15, 15, location, 7
これは正規化されておらず、フィールドのデータ型を指定できません。
次のほうがいいのではないでしょうか
id, uid, gender, age, location
4, 12, male, 21-30, 5
5, 13, female, 31-40, 5
6, 14, female, 31-40, 6
7, 15, male, 21-30, 7
データベースにそのようなテーブルがあることを正当化できるかどうかを知りたいのですが、最初の方法は (データベースを変更する代わりに) フィールドを追加する方が簡単で、おそらくすべての null 値を削除することを知っています.
ただし、データ型を指定することはできず、データを使用するたびに文字列から変換する必要があります。
では、最初の表がベスト プラクティスまたはソリューションと見なされるシナリオはありますか?