次のデータベース設計への参加を強制する最善の方法が何であるかはわかりません (SQL サーバー、Oracle、mySQL などの場合があります)。Factory と Worker の 2 つのテーブルがあります。設計のために 2 つのルールを作成しました。1) 各工場は少なくとも 1 人 (または多数) の労働者を雇用します。2) 各労働者は、厳密に 1 つだけの工場で働きます。
デザインの ERD を作成しました。
[工場]-||--- 雇う ---|<-[労働者]
FACTORY テーブルは次のようになります。
Factory_ID (PK) Factory_Name
1A2B3C _
_
WORKER テーブルは次のようになります。
Worker_ID (PK) Worker_Name Factory_ID (FK)
1 トム 2
2 アン 1
3 ヤン 1
worker テーブルでは、Factory_ID は外部キー (FK) であり、NOT NULL に設定されています (ERD によると) 各ワーカーは 1 つのファクトリで 1 つのみで作業する必要があるためです。この参加は、FK (Worker テーブルの Factory_ID フィールド) を null 以外に設定することで強制できます。
これが私の質問です。参加を強制する最善の方法は何ですか? 各工場は少なくとも 1 人の労働者を雇っていますか? つまり、worker テーブルで各 factory_id を少なくとも 1 回参照する必要があることを確認する必要があります。そのため、現在、工場 3 は ERD の参加規則に違反する人を雇用していません。
この参加を強制する最善の方法は何でしょうか?