ここでは何も循環しませんが、唯一明らかな問題は代替キーを強制しないことです。図では通常AK
とマークされています。UNIQUE NOT NULL
を使用してください。
ここには、3つのテーブルの候補キーがあります。
ApplicantSkill {APPLICANT_ID, SKILL_ID, APPLICANT_SKILL_ID}
KEY {APPLICANT_ID, SKILL_ID}
KEY {APPLICANT_SKILL_ID}
PositionSkill {POSITION_ID, SKILL_ID, POSITION_SKILL_ID}
KEY {POSITION_ID, SKILL_ID}
KEY {POSITION_SKILL_ID}
Application {APPLICANT_ID, VACANCY_ID, APPLICATION_ID}
KEY {APPLICANT_ID, VACANCY_ID}
KEY {APPLICATION_ID}
あなたは代理キー(追加_ID)を導入し、これらのテーブルのプライマリとしてそれらを選択し、 が、他(AK)は省略しているしている - エラーに非常になりやすい、重複、冗長性 と矛盾を簡単に作成できます。
そしてJOB_TITLE_ID
がApplication
から削除する必要があること、それが依存{POSITION_ID} --> {JOB_TITLE_ID}
がある ようなので、それが同期して移動して、矛盾を作成することも見えます。
1.コメントでは、「JobtitleテーブルはPositionテーブルのみを参照しています」と言っています。アプリケーションもですか?すべての参照テーブルを含めてください。 2. Position JobtitleIDもApplicationに表示する必要がありますか?もしそうなら、あなたはFKを外しました。アプリケーションJobtitleIDもPositionに表示される必要がありますか?もしそうなら、あなたはFKを外しました。そのようなFKは循環性に影響を及ぼす。 – philipxy