りんご
2025/06/07 (土) 18:40:41
935bc@0e907
G_IDは、従業員IDの事ですか?時点は、所属開始年月の事ですか?Jnoは、何を示しているのでしょう?特殊な暗号ですか?修正したほうが質問者も回答者もスムーズにやりとりできるでしょう。
名簿0は従業員テーブルですか?名簿3は従業員所属テーブルですか?名簿3は他のテーブルを外部参照するの?それとも、他のテーブルから参照されるの?
通報 ...
りんごさん、ありがとうございます。
説明不足でしたので補足します。
G_IDは雇用元(本籍)の従業員IDです、Jnoは出向(兼務)している会社毎に付与されるIDです。
つまり、出向元JnoをG_IDとして、出向した場合に、出向先会社毎にJnoを付与します。
G_ID:111 A社本籍 Jno:111
G_ID:111 B社出向 Jno:112
G_ID:111 C社出向 Jno:113
社員0は社員の属性管理
(G_ID:111、生年月日:2000/1/3、性別:男性、現住所:台東区浅草1-1-1)
社員1はG_IDとJnoの組み合わせ管理(出向先管理)
(G_ID:111、Jno:111
G_ID:111、Jno:112
G_ID:111、Jno:113)
社員2は、出向先の所属管理
(jno:111、会社:A社、部門:総務
jno:112、会社:B社、部門:人事総務
jno:113、会社:C社、部門:人事)
以上、よろしくお願いいたします。
名簿0のG_ID(主キー)と名簿1のG_ID(主キー、かつ、外部キー)が内部結合、
名簿1のJno(主キー)と名簿2のJno(外部キー)が内部結合
しています
>2
>3
これを記載通りに読むと次のようになります。社員テーブル、会社部門テーブル、社員会社部門テーブルで、会社部門テーブルの主キーはautoNoではなくJnoです。そして、ほとんどの場合出向元Jno=G_IDになり得ません。
主キーの変更、リレーションシップの設定からやり直しが必要になるので、急がば回れ、まずはきちんと土台から正規化するのはどうでしょう。
繰り返しになりますが、こいう運用をしているのです。
G_IDは雇用元(本籍)の従業員IDです、Jnoは出向(兼務)している会社毎に付与されるIDです。
つまり、出向元JnoをG_IDとして、出向した場合に、出向先会社毎にJnoを付与します。