和自由表的“表设计器”相比,数据库表的“表设计器”增加了许多新属性,这些属性会作为数据库的一部分保存起来,并且一直为数据库表所拥有,直到表从这个数据库中移去为止。数据库表主要包含以下新属性:
1.为字段设置新的显示标题
在“数据库设计器”中选定“学生情况”表,然后选择工具栏中的“修改表”命令按钮。在“表设计器”中(如图13.20),选定需要指定标题的字段(如“XM”),在“标题”框中,输入为字段选定的标题(如“姓名”)。给所有字段加上标题(如表13-6)。
输入完毕后,选择“确定”命令按钮,退出“表设计器”对话框。在“数据库设计器”中选定“学生情况”表,单击工具栏中“浏览表”命令按钮,可以发现“浏览”窗口中列头上的拼音简写已被替换为刚才输入的标题了。
2.为字段设置默认值
如果表中某个字段在大部分记录中都有相同的值,则可以为该字段预先设定一个默认值,从而减少数据输入,加快数据的录入速度。当然也可以随时修改设定的默认值。
为字段指定的默认值可以是一个具体的值,也可以是一个VFP表达式,无论是在表单或浏览窗口中,还是以编程方式输入数据,默认值都起作用。
在“学生情况表”中有一个“XB”字段,假定某一个学校的男性学生居多,则可以为“XB”字段设置一个默认值“男”。在表设计器中,选定“XB”字段,
在“默认值”文本框中输入"男"
(如图13.21)。
使用VFP表达式还可以动态设置字段的默认值,例如在图书管理数据库中,需要保存借书、还书日期,这个日期也是当天的计算机的系统日期,所以如果为借书日期和还书日期设置默认值为DATE(),就不需要图书管理员手工输入日期了。
3.设置字段验证规则
对于实际的数据,取值都有一定的范围,若输入数据超越该范围,则一定是非法数据。在VFP中,可以通过字段验证规则,对用户输入信息的合法性进行判断。例如在学生情况表中,性别只有“男”或“女”两种情况,所以在“XB”字段输入其它的任何值都是非法的。可以通过设置该字段的验证规则防止输入非法值。
在表设计器中选择“XB”字段为当前字段,在“规则”文本框中输入:XB = "男".or. XB = "女",为了在输入错误时给用户一个提示,在“信息”文本框中输入:"性别必须为男或女" (如图13.22)。
4.设置记录验证规则
使用记录验证规则可以控制输入到记录中的数据。设置记录验证规则通常是比较同一记录中两个或多个字段的值,以确保它们遵守一定的规则。记录验证规则和字段验证规则不同,字段验证是对某一字段的输入信息进行合法性进行判断。而记录验证强调的是字段之间必须满足一定的关系。
例如在“学生情况”表中,每个记录的出生日期肯定小于入学日期(在前),在数据录入时,可能操作员不小心而颠倒输入导致发生错误,为此可以设置记录级的验证规则,避免这种错误的发生。
在打开的“学生情况”表的表设计器中,选择“表”选项卡,在“规则”框中,输入如下一行代码:
RXRQ >=CSRQ
在“信息”框中输入说明信息"入学日期或出生日期输入错误。"(如图13.23)。
单击“确定”按钮保存设置。
5.建立索引文件
在VFP中可以建立以下四种类型的索引:主索引、候选索引、普通索引、唯一索引。下面我们来建立索引文件。
①打开“学生情况”表,并保证其所在工作区被选中。
②选择菜单“显示/表设计器”,打开“表设计器”对话框。
③在“字段”选项卡中,将光标移至“XH”字段,用鼠标单击“索引”下的下拉列表框,选择“升序”或“降序”项。
④再将光标移至“RXRQ”字段,重复以上操作。
⑤在“索引”选项卡中,可以看到已建立的两个索引,通过“索引”选项卡,将“XH”的索引类型改为“主索引”。
⑥将光标移至“索引名”下的空框内,输入“RXNL”(入学年龄),在“表达式”下的空框内输入"YEAR(RXRQ)-YEAR(SCRQ)",其中YEAR()函数用于计算出生年份和入学年份。
⑦按“确定”按钮退出“表设计器”对话框。
6.建立表之间的永久关系
通过链接不同表的索引,“数据库设计器”可以很方便的在多个有关系的表之间建立联系。在数据库中建立的联系被作为数据库的一部分而保存起来,称为永久关系。每当用户在“查询设计器”或“视图设计器”中使用表,或者在
“数据环境设计器”中使用表时,这些永久关系将作为表之间的默认链接。
在STUDENT数据库中,主表(“学生情况”表)与副表(“学习成绩”表)具有一对多的关系,即:一个学生可以有多门功课的成绩。因此在“学生情况”表中应包含主记录,在“学习成绩”表包含相关记录,两表可以通过“学号”保持关联。
在建立表之间的永久关系之前,需要为表创建索引,为“学生情况”表中的“XH”建立一个主索引(如图13.24),为“学习成绩”表中的“XH”建立一个普通索引(如图12.25)。
索引
建好后,回到“数据库设计器”,在主表(“学生情况”表)的“XH”索引标识上按下左键不放,拖动到副表(“学习成绩”表)的“XH”索引标识上,释放鼠标按钮,在数据库设计器中,我们可以看到两个表的索引标识之间有一条黑线相连接,表示出这两个表之间的永久关系(如图13.26)。双击此线还能够打开“编辑关系”对话框来编辑关系。
7.建立参照完整性
在具有关联关系的表之间进行编辑修改记录时,可能出现以下问题:
①如果在主表中删除了一条记录,则当副表中有相关的记录时,这些记录就成了孤立的记录。
②当在主表中修改了索引关键字的值(如在“学生情况”表中修改“XH”值),那么还需要修改副表中相应记录的关键字值,否则就会产生错误。反过来也一样。
③在副表中增加记录时,如果所增加记录的关键字值是主表中没有的,则增加在副表中的记录也成了孤立的记录。
出现以上的任何一种情况,都会破坏关系表的完整性,一致性。对于此问题的解决,可以在VFP中建立参照完整性,系统可以自动完成这些工作。
在“数据库设计器”中的空白处,按下鼠标右键,打开快捷菜单,从快捷菜单选择“编辑参照完整性…” (如图13.27),打开“参照完整性生成器”对话框(如图13.28)。
在“更新规则”选项卡和“删除规则”选项卡下,选择“级联”选项按钮。
在“插入规则”选项卡下,选择“限制”选项按钮。
单击“确定”按钮后,系统弹出一个对话框,说明要生成参照完整性的代码,单击“是”命令按钮,则参照完整性的代码被建立。