主题:在VFP中,数据库表的字段级、记录级有效性规则在什么情况下使用?
hcy133133
[专家分:0] 发布于 2009-10-16 21:19:00
在VFP中,数据库表的字段级、记录级有效性规则在什么情况下使用?
望知道的大侠告诉下 再次谢过
回复列表 (共1个回复)
沙发
Ilikefox [专家分:5770] 发布于 2009-10-17 20:49:00
俺来说说,供参考。
首先,这些有效性规则都是为了用来维护数据的完整和有效,什么意思?
先看字段级规则,比如表中有个“性别”字段,一般的我们设置这样的字段为字符型,因为就是存放一个“男”或者“女”字,宽度设置为2就行了。但是问题来了,如果要在这个字段中输入一个“大”字,或者其它任何一个汉字,或者其它任何两个字母、符号的组合,都可以。这很糟糕,有性别为“大”的吗?这个数据是无效的,用术语可以称之为“脏数据”,应该剔除。事实上,与其事后去剔除它,不如在它进入表之前就拦截掉,于是我们可以设置该字段的有效性规则为:
[color=FF0000]性别="男" OR 性别="女"[/color]
这下,当有数据要输入到性别字段时,系统首先检查这个数据是否满足规则表达式,不满足就禁止输入,保证了该字段输入的都是有效数据。
再看记录级规则,比如一个公司员工信息表,里面有“出生日期”和“雇用日期”,这两个字段的日期数据应该是“出生日期”在前,“雇用日期”在后,但是完全可以在同一记录中输入出生日期 2001/02/16、雇用日期 1982/12/05。单从字段的范围看,数据都是合法有效的,但是从记录的范围看,这明显是错误的。这个员工早在他(她)出生之前就成了公司员工。要避免这种情况发生,可以设置记录级规则:
[color=FF0000]出生日期<雇用日期[/color]
这样当记录要保存到表中时,会检查是否满足规则表达式,不满足就禁止。
上面说的都是数据有效,再看个数据完整的简单例子。
比如公民身份信息表,假设其中有“身份证号”等等字段,完全可以输入一条记录,姓名啊、居住地啊、籍贯啊等等,就是没有身份证号。这样的记录是不完整的,丢失了最重要的数据。因此可以给“身份证号”字段来个字段级规则:
[color=FF0000]Not EMPTY(身份证号)[/color]
维护了数据完整。
综上所述,当需要严格保证数据有效完整时,就可以设置各种各样的规则。
当然是不是必须要设置这些规则呢?不一定。维护数据有效的方法可以有其它。比如在应用程序中,一个表单用来输入数据,用一个单选按钮组(两个按钮,一男一女)来输入数据到“性别”字段,就完全保证了该字段的有效,可以不用设置“性别”字段的有效性规则。
说了一些最基本的,举例仅为阐明问题。用不用、怎么用就要看实际情况和数据库设计及编程的经验了。
我来回复