平成25年春期午後問6 データベース

ogさん  
(No.1)
外部キーが主キーにもなる場合がどういうときなのかがいまいちわかりません。
設問4では1対多なので、まず外部キーと考えられますが、これがさらに主キーであるのはどういう理由なのでしょうか。
よろしくお願いします。
2018.10.20 19:03
助け人さん 
AP ゴールドマイスター
(No.2)
回答になるかどうかわかりません。

設問4では、
活用シーン表と活用シーンキーワード表は1対多で、活用シーンキーワード表の活用シーンIDは外部キーであり、
キーワード表と活用シーンキーワード表は1対多で、活用シーンキーワード表のキーワードIDは外部キーです。
また、活用シーンキーワード表の活用シーンIDとキーワードIDは、組み合わせて主キー(複合キー)です。
つまり、活用シーンキーワード表において、活用シーンIDは、外部キーであると同時に主キーの一部であり、キーワードIDも、同様です。

ですから、「外部キーであり主キーでもある」ではなく、「外部キーであり主キーの一部でもある」です。

このようなことは結構多く、図1の活用事例キーワード表において、活用事例ID、キーワードIDとも、「外部キーであり主キーの一部でもある」です。

他の代表的なよくあるケースとしては、注文表と商品表が多対多になっているとき、注文明細表を起こして、注文表と注文明細表を1対多、商品表と注文明細表を1対多とし、注文明細表において、注文番号、商品番号とも、「外部キーであり主キーの一部でもある」とします。
2018.10.20 20:05
ogさん  
(No.3)
回答ありがとうございます。
連関エンティティの場合、主キーの一部でもあるんですね。
2018.10.20 21:16
助け人さん 
AP ゴールドマイスター
(No.4)
多対多の連関エンティティでは、先ほどのパターン以外もあります。

2つ目のパターン:注文明細表に、全ての注文明細表の各行を一意に識別する注文明細番号を設定
注文明細番号・・・主キー
注文番号・・・外部キー
商品番号・・・外部キー

3つ目のパターン:注文明細表に、注文明細表内で各行を一意に識別する明細番号を設定
注文番号・・・外部キーであり主キーの一部
明細番号・・・主キーの一部
商品番号・・・外部キー
2018.10.20 22:40

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop