- ベストアンサー
Accessでのテーブルの分け方
例えば下のようなデータがあった場合、どのようにアクセスにもってくればよいでしょうか? 名前 休日の過ごし方 平日の過ごし方 ・・・・ A TV 車 映画 仕事 散歩 運動 B バイク 仕事 仕事 運動 テレビ ・ ・ ・ 今 名前、休日の過ごし方、平日の過ごし方というカテゴリ分けでの表があったとします。 休日の過ごし方・平日の過ごし方というようなカテゴリがこの先どんどん増えていって、でも回答者はその中の2つ3つくらいしか回答しません。そして一つのカテゴリに対して、回答者は2つ3つの回答をします。 こういうデータをアクセスに持ってくる場合、どのようにデータわけしたらいいのでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
はじめまして。 私なら下記のようにテーブルを分けます。 ちょっと分りにくいかもしれませんが。。。 これならば、一人あたりの過ごし方内容の項目数に、 差があっても、無駄がないく管理できます。 テーブル名は適当につけましたので、あしからず。 名前テーブル [ID][名前] 001 A 002 B 日分類テーブル [ID] [日分類] 01 休日 02 平日 過ごし方項目テーブル [ID] [過ごし方] 01 TV 02 車 過ごし方テーブル [ID] [名前.ID] [日分類項目.ID] [過ごし方項目.ID] 001 001(A) 01(休日) 01(TV) 001 001(A) 01(休日) 02(車)
その他の回答 (1)
- ymmasayan
- ベストアンサー率30% (2593/8599)
>カテゴリがこの先どんどん増えていって、でも回答者はその中の2つ3つくらいしか >回答しません。そして一つのカテゴリに対して、回答者は2つ3つの回答をします。 おっしゃるような問題に対応するため、表を作るには正規化という手法をつかいます。 正規化の詳細は書きませんが、結果は次のようになります。 1.名前表 名前コード、名前 2.過ごし方表 過ごし方コード、過ごし方名 3.休日過ごし方表 名前コード、過ごし方コード 4.平日過ごし方表 名前コード、過ごし方コード 当然一人の名前で複数行のデータが出来ます。しかし、こうしておけば、 項目や表が増えても融通性がありますし、検索処理も非常に楽です。
お礼
ただいまデータベースのモデル化を勉強している最中です。正規化についても実際の問題をやってみながら習得しようと試みています。 具体的に例を教えていただきありがとうございました。
お礼
具体例を詳細に教えていただきありがとうございました。 早速実践してみようと思います!