顧客が"AllowRefund"であるかどうかを示す列を持つ Customer テーブルがあり、" AllowRerfund "の特権をクレジットしているスタッフを示す列By_Which_Staffが必要です。
私の要件は次のとおりです。スタッフ ID をBy_Which_Staffテーブルに入れる前に、DB は最初に列AllowRefundがYesであるかどうかを確認してから、スタッフ ID を入れることができます。
これは制約である必要があります。トリガーは、現在の行の外にある何かを操作している (または少なくとも利用している) 場合にのみ使用する必要があります。
許容できない値 (負の年齢、18 歳以上の k1 学生) には制約を使用し、複合値 (フルネームなど) には計算値を使用する必要があります。
CHECK
制約はおそらく最も単純です。MS-SQL の場合:
CHECK (AllowRefund = 1 Or By_Which_Staff Is Null)