我应该使用约束还是触发器?

时间:2012-11-09 16:31:24

标签: sql database

我有一个客户表,其中有一列显示客户是“AllowRefund”,还必须有一列 By_Which_Staff 表明哪些员工认可“AllowRerfund”的特权。

我的要求是:在我将员工ID输入 By_Which_Staff 表之前,数据库应首先检查列 AllowRefund 是否,然后可以将员工ID放入其中。

2 个答案:

答案 0 :(得分:2)

这应该是一个约束。仅当您在当前行之外(或至少使用)某些事物时,才应使用触发器。

约束应该用于不可接受的值(负年龄,k1学生超过18),计算值应该用于复合值(例如全名)。

答案 1 :(得分:1)

CHECK约束可能是最简单的。假设MS-SQL:

CHECK (AllowRefund = 1 Or By_Which_Staff Is Null)