プロが教えるわが家の防犯対策術!

主キーが良くわからなくなってきたので質問させてください。

このようなデータベースのとき、主キーは社員番号でいいですよね
#同姓同名を考えると社員番号かと

社員番号|氏名|部署
0001|ほげ|デバッグ部隊
0002|ふー|リリース部隊
0003|ばー|クレーム対応部隊
0004|ばー子|接待ゴルフ部隊
0005|ほげ子|リリース部隊

ただ、部署を複数所属してよいとすると、社員番号だけが主キーだと行が一意に決まりません。
このときはどれを主キーとして選ぶべきなんでしょうか?
また、○○部隊に所属するひとリストアップするにはどのように正規化(設計?)すればよいのでしょうか?

社員番号|氏名|部署
0001|ほげ|デバッグ部隊
0001|ほげ|接待ゴルフ部隊
0002|ふー|リリース部隊
0003|ばー|クレーム対応部隊
0004|ばー子|接待ゴルフ部隊
0005|ほげ子|リリース部隊

A 回答 (2件)

ANo.1はまだ正規化が済んでいません。

ANo.1を流用して回答します。

[社員]
社員番号|氏名
0001|ほげ
0002|ふー
0003|ばー
0004|ばー子
0005|ほげ子

主キー:社員番号


[所属]
社員番号|部署番号
0001|BU01
0001|BU02
0002|BU03
0003|BU04
0004|BU05
0005|BU04

主キー:社員番号、部署番号


[部署]
部署番号|部署名
BU01|デバッグ部隊
BU02|接待ゴルフ部隊
BU03|リリース部隊
BU04|クレーム対応部隊
BU05|接待ゴルフ部隊

主キー:部署番号
    • good
    • 2

この場合、正規化を行い、[社員]テーブルと[部署]テーブルに分けるとよいかと思います。





[社員]
社員番号|氏名|部署番号
0001|ほげ|BU01
0001|ほげ|BU02
0002|ふー|BU03
0003|ばー|BU04
0004|ばー子|BU05
0005|ほげ子|BU04


主キー:社員番号、部署番号

[部署]
部署番号|部署名
BU01|デバッグ部隊
BU02|接待ゴルフ部隊
BU03|リリース部隊
BU04|クレーム対応部隊
BU05|接待ゴルフ部隊


主キー:部署番号
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す