约束双手!
>使用约束条件指定关系原则,即关于数据的事实.除非某些事实发生变化(即新的要求),否则您将永远不需要更改约束条件.
>使用触发器指定如何处理数据(插入,更新等).这是一种“非关系”的做事方式.
为了更好地解释自己的一个比喻:编写SQL查询的正确方法是指定“你想要什么”,而不是“如何获得” – 让RDBMS找出最好的方式为您做.同样适用于这种情况:如果您使用触发器,您必须牢记执行顺序,级联等各种各样的事情.如果可能,让sql为您做限制.
这并不是说触发器没有用处.他们这样做:有时你不能使用约束来指定一些关于你的数据的事实.这是非常罕见的.如果它发生在你身上,那么模式可能有一些问题.