2012-01-12 44 views
2

バックエンドデータベースからデータが取り込まれる複数のドロップダウンリストがあるとします。目的は、これらの値をデータベースに格納し、フォームをレンダリングするたびにそれらを取得することです。ドロップダウン値を保存するにはどうすればよいですか

私が使用した二つのアプローチ見てきました

1)リストタイプごとに1つのテーブル:

profession_type 
|id|value| 

hobby_type 
|id|value| 

2)すべてのルックアップ値のための一つのテーブル:

|id|type   |value| 
|0 |profession_type|value| 
|1 |profession_type|value| 
|2 |profession_type|value| 
|3 |hobby_type  |value| 
|4 |hobby_type  |value| 
|5 |hobby_type  |value| 

はありますがどちらかに客観的な利点をもたらす。 #2はより一般的なようです(特定のドロップダウンを入力するためにタイプ別にテーブルから選択します)が、#1を使用する場合よりもテーブルがかなり大きくなる傾向があります。また、#2を使用すると、すべての外部キーが同じ巨大なテーブルを指しています。それは大きな問題のようには見えませんが、私の目では、このアプローチはもっと複雑に見えます。

答えて

1

私は#2に行きます。すべての情報を取得してキャッシュすることができます。新しいタイプを追加しても、データベースや検索ロジックを変更する必要はありません。

テーブルを追加および変更する場合は、今後すべての変更についてデータベーススキーマをタッチし、新しいテーブルの検索コードを変更する必要があります。

さらに、テーブルサイズの懸念は根拠がありません。何百万という行がない限り、それはうまくいくでしょう。私は数百または何千もの行を想像していますか?データベースで簡単に処理できます。

関連する問題