• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:住所録データベースの設計)

住所録データベースの設計について

このQ&Aのポイント
  • EXCELで住所録を作っていましたが、ACCESSに切り替えるためのデータベース設計について相談です。
  • 個人で複数の住所を持っている人や、結婚などにより2人が1つの住所に住んでいる場合を考慮して、「個人」と「住居」の2つのテーブルを作り、多対多の関係で結びたいと思っています。
  • また、e-mailや携帯電話、年賀状の履歴なども扱いたいため、それぞれにテーブルを用意する予定です。しかし、年賀状の送り先やメールアドレスの所有者は個人でも家族でもあります。この場合、個人と住居の両方にメールや履歴データを関連づける方法についても相談したいです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#161966
noname#161966
回答No.1

個人(ID, name, bith..., 連絡先.ID) 住居(ID, addr, addr_number..., 連絡先.ID) 居住(個人.ID, 住居.ID) 連絡先(ID, mail, phone...) 履歴(連絡先.ID, date, type...) 正規化すると、こういう感じですか? 細かい属性をどうするかは自由にして欲しいのですが、こうしておくことの特徴は次のような感じになります。 ・個人は個人で管理できる。 ・住居は住居で管理できる。 ・連絡先は個人や住居とは独立したものとして設計し、個人や住居が連絡先を持つと考える。 ・個人と住居の多対多の関係は居住という関係テーブルを設定することで一対多に変換する。 質問にあるように個人と住居の両方にメールや履歴データを関連付けることは、この連絡先テーブルを介して出来ると思います。質問の中でおっしゃっている様に履歴テーブルに住居IDと個人IDの2つのフィールドをおいて、レコードごとに好きなほうを入力しても別に問題はないと思います。この辺の話は、どういう風にデータを利用することが多いのかによって設計はトレードオフになるのでは? こういう設計の話は勘違いして回答してしまうと的外れになってしまうので、参考にならなかったら気にしないでくださいね。

kana21
質問者

お礼

ありがとうございます。助かります。 なるほど、連絡先テーブル、という概念は思い浮かびませんでした。 個人や住居が複数のメールアドレスを持てるようにしたいので、 連絡先の考えも入れて、もう少し頭をひねってみます。 多対多で結べばいいのかな?うーん・・。少し考えれば出来そうな 気がしてきました。ありがとうございました。

その他の回答 (1)

回答No.2

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

関連するQ&A