前言,学校时学习的东西,好久都没有用到了。
今天看到了rule,第一眼还以为是约束了。
--------------------------------------------------------------
举例,说明「约束」:constraint
我们在定义一个表的时候,可以定义下面几种约束
1.主键约束
2.外键约束
3.唯一性约束
4.非空约束
5.检查约束 check: 例:check(columnName > 18)
======================================
举例,说明「规则」(在Sql Server2000中) rule
为目标数据库管理系统设计业务规则:
4.2.1 规则:
rule[Sex]
create rule [Sex] as @ in ('男','女')
rule[TypeHaveChild]
create rule [TypeHaveChild] as @ in ('y','n')
rule[IsSpecial]
create rule [IsSpecial] as @ in ('y','n')
rule[OrderIsConfirm]
create rule [OrderIsConfirm] as @ in ('y','n')
rule[Actor]
create rule [Actor] as @ in('超级管理员','用户管理员','论坛管理员','服装
管理员','订单管理员','公告管理员')
rule[OrderSendStatus]
create rule [OrderSendStatus
实例(应用到表中):
CREATE RULE id_chk AS @id BETWEEN 0 and 10000
CREATE TABLE cust_sample
(
cust_id int
PRIMARY KEY,
cust_name char(50),
cust_address char(50),
cust_credit_limit money,
)
sp_bindrule id_chk, 'cust_sample.cust_id '
===========================================
区别总结:
规则可以邦定到多列 、check只能邦定一个表
用规则可以优化你的设计
但是我觉得,一般情况下,我们完全可以使用约束中的检查check。