
EXCELで住所録を作ってましたが、ACCESSに切り替えよう
と思っている者です。
今、住所録データベースの設計をしているのですが、
1) 個人で複数の住所を持っている人間が多い(実家・現住所など)
2) 結婚などにより、2人が1つの住所に住んでいる場合がある。
ので、「個人」テーブルと、「住居」テーブルを、2つ別々に作り、多対多で結ぼうと思ってます。
e-mail、携帯電話、年賀状履歴の情報も扱いたいと思ってます(それぞれにテーブルをおくつもりです)。
e-mailや履歴を、「個人」または「住居」どちらかに関連づけたいのですが、年賀状は個人に送る場合もあるし、家族に送る場合もあります。メールアドレスも、個人所有がほとんどですが、なかには家族所有なんかもあり。
個人と、住居の両方に、メールや履歴データを関連づける方法はないでしょうか?
例えば履歴テーブルに住居IDと個人IDの2つのフィールドをおいて、レコード毎に好きな方を入力しても設計として問題ないのでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
個人(ID, name, bith..., 連絡先.ID)
住居(ID, addr, addr_number..., 連絡先.ID)
居住(個人.ID, 住居.ID)
連絡先(ID, mail, phone...)
履歴(連絡先.ID, date, type...)
正規化すると、こういう感じですか?
細かい属性をどうするかは自由にして欲しいのですが、こうしておくことの特徴は次のような感じになります。
・個人は個人で管理できる。
・住居は住居で管理できる。
・連絡先は個人や住居とは独立したものとして設計し、個人や住居が連絡先を持つと考える。
・個人と住居の多対多の関係は居住という関係テーブルを設定することで一対多に変換する。
質問にあるように個人と住居の両方にメールや履歴データを関連付けることは、この連絡先テーブルを介して出来ると思います。質問の中でおっしゃっている様に履歴テーブルに住居IDと個人IDの2つのフィールドをおいて、レコードごとに好きなほうを入力しても別に問題はないと思います。この辺の話は、どういう風にデータを利用することが多いのかによって設計はトレードオフになるのでは?
こういう設計の話は勘違いして回答してしまうと的外れになってしまうので、参考にならなかったら気にしないでくださいね。
ありがとうございます。助かります。
なるほど、連絡先テーブル、という概念は思い浮かびませんでした。
個人や住居が複数のメールアドレスを持てるようにしたいので、
連絡先の考えも入れて、もう少し頭をひねってみます。
多対多で結べばいいのかな?うーん・・。少し考えれば出来そうな
気がしてきました。ありがとうございました。
No.2
- 回答日時:
回答ではないのですが。
すみません。私も同じようなものを作りたいと考えていたのですが、Access自体使ったことが無いので良く分かりません。参考になるような本やURLをご存知でしたら教えていただけませんでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
会社の飲み会の幹事になり、座...
-
外部キーだけのテーブル(主キ...
-
「テーブルに座って……」という...
-
論理名とコメント構文(?)について
-
mysqlのupdate構文についての質...
-
オーダーの覚え方について
-
飲み会で、座敷orテーブルどち...
-
テーブルリンク リンク元を知...
-
アクセスのリンクテーブル一覧...
-
L2SWはARPテーブルを持っている?
-
【エクセル】データテーブルの...
-
人の前を通る場合について
-
Accessデータベースウインドウ...
-
1対1のリレーション(主キー同...
-
男性と2人で飲食店に行きテーブ...
-
お金持ちのテーブル
-
AccessのSQL 部分一致したデー...
-
2つのテーブルのカウント結果...
-
【SQL】グループ化した際の最頻...
-
グループ毎に通番を付与して返...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「テーブルに座って……」という...
-
会社の飲み会の幹事になり、座...
-
外部キーだけのテーブル(主キ...
-
テーブルリンク リンク元を知...
-
オーダーの覚え方について
-
下記、問題に対しての解答が以...
-
飲み会で、座敷orテーブルどち...
-
アクセスのリンクテーブル一覧...
-
【エクセル】データテーブルの...
-
L2SWはARPテーブルを持っている?
-
面接のときテーブルが正面に。...
-
男性と2人で飲食店に行きテーブ...
-
UTF8のテーブルをODBCドライバ...
-
お金持ちのテーブル
-
1つのテーブルに同じデータを参...
-
テーブル名の前のドットの意味
-
複雑なSQL文について
-
データベースの接続に失敗して...
-
【PHP】SQL文のSUM関数で出力し...
-
更新されたテーブルを表示したい
おすすめ情報