重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

EXCELで住所録を作ってましたが、ACCESSに切り替えよう
と思っている者です。
今、住所録データベースの設計をしているのですが、

1) 個人で複数の住所を持っている人間が多い(実家・現住所など)
2) 結婚などにより、2人が1つの住所に住んでいる場合がある。

ので、「個人」テーブルと、「住居」テーブルを、2つ別々に作り、多対多で結ぼうと思ってます。

e-mail、携帯電話、年賀状履歴の情報も扱いたいと思ってます(それぞれにテーブルをおくつもりです)。
e-mailや履歴を、「個人」または「住居」どちらかに関連づけたいのですが、年賀状は個人に送る場合もあるし、家族に送る場合もあります。メールアドレスも、個人所有がほとんどですが、なかには家族所有なんかもあり。

個人と、住居の両方に、メールや履歴データを関連づける方法はないでしょうか?
例えば履歴テーブルに住居IDと個人IDの2つのフィールドをおいて、レコード毎に好きな方を入力しても設計として問題ないのでしょうか?

よろしくお願いします。

A 回答 (2件)

個人(ID, name, bith..., 連絡先.ID)


住居(ID, addr, addr_number..., 連絡先.ID)
居住(個人.ID, 住居.ID)
連絡先(ID, mail, phone...)
履歴(連絡先.ID, date, type...)

正規化すると、こういう感じですか?
細かい属性をどうするかは自由にして欲しいのですが、こうしておくことの特徴は次のような感じになります。
・個人は個人で管理できる。
・住居は住居で管理できる。
・連絡先は個人や住居とは独立したものとして設計し、個人や住居が連絡先を持つと考える。
・個人と住居の多対多の関係は居住という関係テーブルを設定することで一対多に変換する。

質問にあるように個人と住居の両方にメールや履歴データを関連付けることは、この連絡先テーブルを介して出来ると思います。質問の中でおっしゃっている様に履歴テーブルに住居IDと個人IDの2つのフィールドをおいて、レコードごとに好きなほうを入力しても別に問題はないと思います。この辺の話は、どういう風にデータを利用することが多いのかによって設計はトレードオフになるのでは?

こういう設計の話は勘違いして回答してしまうと的外れになってしまうので、参考にならなかったら気にしないでくださいね。
    • good
    • 0
この回答へのお礼

ありがとうございます。助かります。
なるほど、連絡先テーブル、という概念は思い浮かびませんでした。

個人や住居が複数のメールアドレスを持てるようにしたいので、
連絡先の考えも入れて、もう少し頭をひねってみます。

多対多で結べばいいのかな?うーん・・。少し考えれば出来そうな
気がしてきました。ありがとうございました。

お礼日時:2005/01/17 23:28

回答ではないのですが。

すみません。
私も同じようなものを作りたいと考えていたのですが、Access自体使ったことが無いので良く分かりません。参考になるような本やURLをご存知でしたら教えていただけませんでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す