私はそうのようなユーザ・テーブルでデータベースを持っている:この情報を保存する最良の方法は何ですか?
table users:
user_id (int)
user_name (varchar)
etc..
このユーザーは同じような要件のカップルを埋めることができるようになります:
- 最小給与(int型)
- は、運転免許証を持っています(ブール値)
- 私の他の要求(テキスト)戻り値
データベースでこれを保管するための最良の方法だろう何
user_id: 1,
user_name: 'John Doe',
user_requirements: {
minimal_salary: 2000,
drivers_license: true,
demands: 'These are my demands..'
}
:User->get(user_id);
のこのようなものでなければなりませんか?
私はあなたが1対1の関係を使用できることを知っています。 (これにはジョインまたは別のクエリが必要です) すべてを1つのテーブルに格納できます。 (コードでいくつか調整する必要があります) これを、要件テーブルのタイプ(int/bool/text)との多対多リレーションに正規化することができます。
EDIT
注:私はすでにuserテーブルの25列を持っているので、私は需要の3〜6までの列を追加する場合、それはどんな違いを生むでしょうか?目には、1つのテーブルで多くの情報が得られます。
それを別のテーブルに入れる理由は、ユーザーの要求はそれ自身のエンティティです。フロントエンドからuser-> get()関数が呼び出されたときにのみ、このデータを使用する必要があります。私はユーザーの情報を使用する必要がある他のすべての時間、私は要求を持っている必要はありません。 – pascalvgemert
要求はどんな種類のエンティティですか?上は単純な文字列として表現されているようです。 –
あなたが責任を分かれば、彼の情報と共に、ユーザーの要求、例えばユーザーの更新などがユーザーに与えられます。 しかし、おそらく今は難しいと思っています。 – pascalvgemert