石河子大学--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所示。