リレーショナル モデルの準備中に、型制約 {XOR} の変換に行き詰まりました。
例を次に示します: 申請者 (ユーザー) によるクレジットと同等のファイルがあり、バリデーター (別のユーザー) によっても検証されますが、申請者が同じフォルダーのバリデーターではないという除外制約があります。
テーブルでどのように翻訳できますか?
Dossier_Equi (num_dosier, # applicant # validator ......)
リレーショナル モデルの準備中に、型制約 {XOR} の変換に行き詰まりました。
例を次に示します: 申請者 (ユーザー) によるクレジットと同等のファイルがあり、バリデーター (別のユーザー) によっても検証されますが、申請者が同じフォルダーのバリデーターではないという除外制約があります。
テーブルでどのように翻訳できますか?
Dossier_Equi (num_dosier, # applicant # validator ......)
まず、これは型制約(つまり、2 つの分類器間の制約) ではなく、関連制約であることに注意してください。次に、xor 制約は、クラスのオブジェクトが一度に最大で 1 つの関連付けに参加できることを指定していることに注意してください。
制約:
申請者はバリデータであってはなりません。
同等の SQL は次のようになります。
CHECK (validator IS NULL OR applicant<>validator)
(異なる列に適用されるため、テーブルの制約として)。
ただし、MySQL は SQL チェック制約をサポートしていません。別の質問では、その目的でトリガーを使用することを提案しています。BEFORE INSERT/UPDATE