データベースを設計していますが、どのアプローチを使用すればよいか迷っています。設計しようとしているデータベースと、データをテーブルに格納するために使用できるアプローチについて説明します。
どのアプローチを使用すべきか、またその理由を教えてください。
データについて:
A)私には、注意が必要な 7 つの属性があります。これらは単なる例であり、私が保存しようとしている実際のものではありません. 私はそれらを呼びましょう:
1)お名前
2)DOB (修正..以前ここに年齢を入れていた..)
3)性別
4)婚姻状況
5)給与
6)母国語
7)父の名前
B)テーブルには最低10000行あり、長期的にはそこから増加する可能性があります
C)属性の数は、時間の経過とともに変化する可能性があります。つまり、新しい属性を既存のデータセットに追加できます。属性が削除されることはありません。
アプローチ1
7つの属性を持つテーブルを作成し、データをそのまま格納します。新しい属性を追加する必要がある場合は、新しい列を追加しました。
長所: データが読みやすく、情報が整理されている
短所: 値が不明な特定の属性の特定の行に、多くの null 値が存在する可能性があります。
アプローチ 2
3 つの属性を持つテーブルを作成します。それらを呼びましょう:
1) Attr_Name : 属性名を格納します。例: 名前、年齢、性別など
2) Attr_Value : 上記の属性の値を格納します。例: Tom、25、Male
3) 一意の ID : データベース内の名前と値のペアを一意に識別します。例えば。SSN
したがって、アプローチ 2 では、特定の行に新しい属性を追加する必要がある場合に、作成したハッシュマップに属性を追加するだけで、null 値を気にする必要はありません。
長所: ハッシュマップ構造。ヌルを排除します。
短所: データが読みにくい。簡単に情報が掴めない。
C) 質問
どちらがより良いアプローチですか?
アプローチ1がより良いアプローチだと思います。null 値を処理するのはそれほど難しくなく、データは適切に整理されており、このデータの王様を簡単に把握できるためです。どのアプローチを使用すべきか、またその理由を教えてください。
ありがとう!