利用Oracle约束制定关键数据规则

MIS应用中,经常可以遇到很多核心的规则,比如说:身份证必须18,原来为15,出生日期必须小于系统日期;年龄必须大于0等等.这些规则必须明确定义,否则数据一旦能存储到数据库,那么这种数据极有可能是错误数据,为以后系统大量实施后的分析带来很大的困难.

 最明显的例子是日期类的字段,我们通常都需要对日期类字段进行查询分析,并且日期型字段一般范围比较广从 1900-01-01 9999-01-01 都是合法的日期范围,如果我们的程序在应用中没有做严格的判断,根据业务进行的严格判断!那么用户极有可能录入类似 6000-01-01 的数据,根据业务逻辑,这种数据可能是根本违法的数据;在这种时候我们需要在数据库保存前做最后的最重要的数据的验证,限制其规则.
   
大家都在讨论将应用于数据库无关,比如J2ee架构就想消除系统平台和数据库平台的区别;我对这个看法稍有微词;如果只把数据库做数据存储,是否有些浪费了数据库的强大功能,不用数据库的主外键约束,能否真正解决数据一致性问题完全不考虑数据库,能否处理异端苛刻情况下的性能问题.我不知道.
   
但我想,既然数据库提供了这么强大的功能,我们在适合使用的时候就应用使用;业务->模型->数据,应用总之要把数据存储到数据库中;数据才是最重要的财富.

 那么在数据进入数据库之前,我们为什么不利用数据库的功能做最后的,最关键的内容约束和验证呢?

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值