- ベストアンサー
ACCESSデータベース作成で正規化と言われました。 テーブルの作り方
ACCESSデータベース作成で正規化と言われました。 テーブルの作り方(項目分け)がわかりません。・申込日・氏名・性別・生年月日・郵便番号・住所・電番・職業・DM希望・メアド どうすればいいですか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
root_16 さんの意見に賛成です。 あまり正規化のメリットはないようにも思えますけど。 まぁ、主キーに相当するようなものが無いので、ID を主キーとして ID・申込日・氏名・性別・~ とするか、 個人が複数の値を持ちそうなのは 電話番号(固定電話や携帯電話) メールアドレス(勤務先・個人のプロバイダ・フリーメール) 住所(現住所・勤務先・) 位なので 顧客マスタ ID・申込日・氏名・性別・生年月日・職業・DM希望 顧客マスタ住所 ID・郵便番号・住所・備考(複数の場合どれを優先するか等) 顧客マスタ電話番号 ID・電番・備考 顧客マスタメアド ID・メアド・備考 でしょうか。 顧客マスタ住所から顧客マスタメアドには『番号』フィールド(オートナンバー型)が 有ったほうが良いかもしれない。 http://support.microsoft.com/kb/283878/ なお、root_16 さんも述べられていますが なにかの注文でしたら、トランザクションテーブルの方に 受注テーブル ID・申込日・商品ID・数量・~ のように 顧客マスタテーブルは ID・登録日・氏名・性別・生年月日・職業・DM希望 かな? 全体像が見えませんのでこの辺にて。あとは上司にお伺いを。
その他の回答 (2)
- layy
- ベストアンサー率23% (292/1222)
指示されたことについて、正規化すればいい、と解釈の質問と思いますが、この状態からはやって欲しいのは正規化ではないと思います。 変わる値、あまり変わらない値、変わらない値、増えて行く値、等に分類して1つのテーブルで管理しないように、だと思います。 生年月日は変わりませんがDM希望は随時変わります。画面があるとしてDM希望を更新する場合、生年月日の項目は必要ないので別テーブルでも良い。 参照でよいもの 更新にするもの にわける。 正規化については学習しておいて下さい。
お礼
なんか全く違う方向で上司が考えてました。 考えろと言われてやってみたら方向性が違うということで再指示があり、無事に解決しました。 どうやら、職業を別テーブルにして正規化したかったみたいです。。。
- root_16
- ベストアンサー率32% (674/2096)
申込日だけを管理すれば良いのであれば、 全ての項目を含む顧客テーブルとし、 特に正規化してテーブル分けする必要を感じません。 この項目で正規化が必要になるケースは ある人物が複数の住所を持っている場合か 複数のメールアドレスを持つ場合 (項目増やすだけでも対応可能ですが) です。 ほか、同一人物が複数申込をしてくるケース がありますが、 「申込」が「会員登録」のようなものなら正規化不要。 登録者と申込日が1対1の関係なので。 「申込」が「注文」のようなものなら 「申込日」を他の項目とテーブルを分け、他の項目を顧客テーブルと するのが良いのではないでしょうか?
お礼
なんか全く違う方向で上司が考えてました。 考えろと言われてやってみたら方向性が違うということで再指示があり、無事に解決しました。 どうやら、職業を別テーブルにして正規化したかったみたいです。。。
お礼
なんか全く違う方向で上司が考えてました。 考えろと言われてやってみたら方向性が違うということで再指示があり、無事に解決しました。 どうやら、職業を別テーブルにして正規化したかったみたいです。。。