【外部キー】データベース設計でテーブル参照"するされる"について

【外部キー】データベース設計でテーブル参照"するされる"について 現在、見よう見まねでWEBアプリケーションを作っています。 設計は特にしないで行き当たりばったりで実装をしています。 そこで、データベースの構造で少し悩んでしまっています。 1対多の場合、外部キーを持つべきテーブルは、"参照する側"が持つ、すなわち"多"側に外部キーを持つということと解釈しました。 しかし、1対1の場合は外部キーはどちらに持たせるべきなのでしょうか? 同じく参照する側が外部キーを持つのでしょうか? また、このようなRDBのリレーションについて理解を深めやすいWEBサイトや参考書があれば教えてください。 久々にアプリを作っているとリレーションに関する知識が吹っ飛んでいました。 ちなみにフレームワークはRails3を使っています。

MySQL1,138閲覧

ベストアンサー

このベストアンサーは投票で選ばれました

0

>同じく参照する側が外部キーを持つのでしょうか? はいそうです。 設計からきちんとやっていけば(何を作りたいのか、が最初からはっきりしていれば)このような質問はでてこなかったと思います。 商品マスタTBL(PK:商品コード)があったとしたら、注文TBLの商品コードは当然FKになりますし、 参照する側が外部キーを持ちます。 参考までに外部キーの使い方の一例として「参照制約」で検索してみてください。

その他の回答(2件)

0

正規化で検索してみて下さい。 データベースの考え方や作り方がわかると思います。

0

ん? おっしゃっている通り、"参照する側"が持つ で合っているとおもいますよ。 1対1だろうが1対多だろうがそれは同じです。