ハンドルネーム |
いとう
|
製品 |
OBER |
タイトル |
1つのテーブルに、同じキーを参照する外部キーを2つ作りたい
|
メッセージ本文 |
いとうと申します。 OBERのトライアル版を試用させていただいてます。
1つのテーブルに、同じキーを参照する外部キーを2つ作りたいのですが、 方法がわからず困っております。
例えば、以下のような2つの表があるとします。
社員マスタ表 ------------- ●社員コード 氏名
受注情報表 ------------- ●受注番号 受注担当者 確認担当者
※ ●は主キーを表す
ここで、社員マスタ表の社員コード列を参照する外部キーを、 受注担当者列と確認担当者列、それぞれに作成するとします。 SQL文に直すと・・・
ALTER TABLE 受注情報 ADD(CONSTRAINT FK_受注担当 FOREIGN KEY(受注担当者) REFERENCES 社員マスタ (社員コード)) / ALTER TABLE 受注情報 ADD(CONSTRAINT FK_確認担当 FOREIGN KEY(確認担当者) REFERENCES 社員マスタ (社員コード)) /
のようにしたいのですが、OBERでリレーションを作成し、 フォワードエンジニアリングのプレビューのSQL文を表示すると、
ALTER TABLE 受注情報 ADD(CONSTRAINT FK_受注担当 FOREIGN KEY(受注担当者,確認担当者) REFERENCES 社員マスタ (社員コード)) / ALTER TABLE 受注情報 ADD(CONSTRAINT FK_確認担当 FOREIGN KEY(受注担当者,確認担当者) REFERENCES 社員マスタ (社員コード)) /
のように、受注担当者列と確認担当者列の2列で、社員コード列を 参照するリレーションを、2つ作るようなSQL文が生成され、参照する列の数が、 参照される列の数と一致しないので、エラーになってしまいます。
また、
ALTER TABLE 受注情報 ADD(CONSTRAINT FK_受注担当 FOREIGN KEY(受注担当者) REFERENCES 社員マスタ (社員コード)) / ALTER TABLE 受注情報 ADD(CONSTRAINT FK_確認担当 FOREIGN KEY(確認担当者) REFERENCES 社員マスタ (社員コード)) /
のSQL文で作ったリレーションをリバースエンジニアリングし、 フォワードエンジニアリングし直そうとた場合も、
ALTER TABLE 受注情報 ADD(CONSTRAINT FK_受注担当 FOREIGN KEY(受注担当者,確認担当者) REFERENCES 社員マスタ (社員コード)) / ALTER TABLE 受注情報 ADD(CONSTRAINT FK_確認担当 FOREIGN KEY(受注担当者,確認担当者) REFERENCES 社員マスタ (社員コード)) /
のようなSQL文に修正されてしまいます。 上記のような問題を回避する方法がございましたら、 ご教示ください。 ##長文、失礼いたしましたm(_ _)m
環境 サーバーOS:WindowsNT 4.0 クライアントOS:Windows2000 SP2 Oracle:Oracle 8.0.5 OBER:1.2.1.10
|