人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

RDBで以下のようなテーブルがあります。

CREATE TABLE table_a (
id INTEGER,
table_b_id INTEGER FOREIGN KEY REFERENCES table_b(id),
table_c_id INTEGER FOREIGN KEY REFERENCES table_c(id),
);

CREATE TABLE table_b (
id INTEGER,
table_d_id INTEGER FOREIGN KEY REFERENCES table_d(id),
);

CREATE TABLE table_c (
id INTEGER,
table_d_id INTEGER FOREIGN KEY REFERENCES table_d(id),
);

CREATE TABLE table_d (
id INTEGER,
);

table_bとtable_cはお互い関連はないのですが、共にtable_dを参照しています。
また、table_aに所属するtable_bとtable_cのtable_d_idは必ず同じ値になります。
このようなテーブルはどのように正規化、もしくは設計変更すればよろしいでしょうか?

●質問者: はれる
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Key RDB 設計
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● t-wata
●27ポイント

この情報を見る限りでは、十分に正規化されてますね。やるとすれば非正規化でしょう。

もしくはA->Dのリレーションがあるということなので、そのテーブルを追加するか。

いずれにせよ用件によりますね。今のままで何か問題があるんですか?

◎質問者からの返答

気分の問題かもしれませんが、table_bとtable_cのtable_d_idが異なる可能性を排除したいんです。


2 ● まつぼっくり
●27ポイント

外部参照が全て1対nの関係であれば、これ以上正規化はできないです。

◎質問者からの返答

やりたい事はは上の回答に対する返答なのですが、

たしかに全て1対nの関係なので難しいですよね……


3 ● sirotugu40
●26ポイント

table_d が必要ないはずですが・・・

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ