员工教师通讯录应用系统 下载本文

石河子大学--Delphi课程设计 2012年11月2日

表3-2 教师登录信息表 user 结构

字段

含义

类型

长度

默认值

NULL/主键

username pwd answer question

教师名 密码 密保答案 密保问题

varchar varchar varchar varchar

50 20 255 255

不允许空 不允许空

表 3-3 教师信息表 people 结构

字段

含义

类型

长度

默认值

NULL/主键

id groupId fullName sex company phoneInCompany homeAddress phoneInhome mobile mail qq msn memory

ID 所属组ID 姓名 性别 工作单位 办公电话 住址 住宅电话 手机 邮箱 QQ MSN 备注

int int varchar 是/否 varchar varchar varchar varchar varchar varchar varchar varchar varchar

1

主键/自增

外键

50 255 15 255 15 15 50 15 50 255

石河子大学--Delphi课程设计 2012年11月2日

在以数据库为核心的程序中,数据库设计的重要性不言而喻。如果设计不合理,不仅操作数据比较麻烦,增加应用程序设计人员的工作量,数据库的性能也会受到影响。通过进行正规化的表格设计,可以令数据库具有可读性和扩展性,同时也会提升应用的性能。正规化就是在设计表格时,消除冗余性和不协调的从属关系的过程。

本次数据库设计中,在表people中并没有直接保存组名信息,而只是保存了一个组的ID号,这实际上是遵循数据库规范化设计原则的结果。

概念设计完成后就可以在ACCESS里面进行表的设计了。 图3-3为groupInfo表;图 3-4为people表;图3-5为user表

图 3-3 groupInfo表的设计

石河子大学--Delphi课程设计 2012年11月2日

图 3-4 people表的设计

图 3-5 user表的设计

在需求分析阶段,已经明确指出“未分组”是不可以被删除的,也就是说,它应是系统固有的,而且,为了便于编程,“未分组”的组ID希望被设定为1,而字段id被设计为自增的字段。因此,表groupInfo建立完成后,应首先手工在其中输入组名“未分组”,以便其对应的id为1。

3.3.2 设计参照完整性规则

使用数据库存储数据与使用普通文件存储数据有一个区别是,在数据库中不仅可以存储数据,还可以保存数据之间的关系,这是数据库与普通数据文件之间的一个本质区别。在数据库中保证数据的完整性可以从实体完整性、域完整性及参照完整性三个方面入手。前两者是在表中完成的完整性规则,而参照完整性则正式通过表之间的关系来实现的。所谓参照完整性是指当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数据

石河子大学--Delphi课程设计 2012年11月2日

操作是否正确。所以关系对于保证数据的完整性有着非常重要的作用。

在本实例中,数据库中的关系主要是表people中的字段groupId对应于表groupInfo的字段id,换句话说,表groupInfo的主键是字段id,表people的外键是字段groupId。

在ACCESS中,建立关系的步骤如下: ① 启动SQL SERVER,打开数据库address。

② 在菜单栏选择“表设计器”-->“关系”,此时将显示关系窗口,如图3-6所示。

图 3-6 外键关系对话框

石河子大学--Delphi课程设计 2012年11月2日

用鼠标选中左边的FK_people_people之后,点击右边的“表和列规范”,可以看到子分支下有四个选项:外键基表,外键列,主/唯一键基表,主/唯一键列。点击右边的“?”,就会出现表和列对话框,如图3-7所示。

图 3-7 表和列对话框

在这里面就可以选择主外键关系。

另外为了实行参照完整性,在外键关系对话框中的右边,还要将INSERT和UPDATA规范中的“更新规则”和“删除规则”选为“层叠”。默认情况下是“无操作”,这样就起不到级联的作用了。如图3-8所示。