学校通讯录管理系统数据库设计_通讯录系统数据库设计
学校通讯录管理系统数据库设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“通讯录系统数据库设计”。
4.2 数据库设计
在本实例中使用的是SQL Server 2000数据库管理系统。数据库服务器安装的位置为本机,数据库名称为communicationserver。下面将介绍数据库分析和设计、数据表的创建、数据表关系图和创建存储过程的内容。
4.2.1 数据库分析和设计
在本节中,将根据上一节系统功能的设计分析创建各数据表的实体E-R关系图,它是数据库设计非常重要的一步,下面用E-R图的形式表示出各实体的属性。
1.用户E-R实体图
用户的实体具有用户ID、密码、姓名、性别、电话、E-mail、用户权限7个属性,ER图如图4-5所示。
姓名用户权限性别电话用户E-mail用户ID图4-5 用户E-R实体图
密码 2.地区E-R实体图
地区的实体具有地区编号、地区名称2个属性,E-R图如图4-6所示。
地区编号地区图4-6 地区E-R实体图
地区名称 3.职务E-R实体图
职务的实体具有职务编号、职务名称2个属性,E-R图如图4-7所示。
职务编号职务图4-7 职务E-R实体图
职务名称 4.学校E-R实体图
学校的实体具有学校名称、学校所在地区、在校学生人数3个属性,可用E-R图表示,如图4-8所示。
学校名称学校在校学生人数学校编号学校所在地区
图4-8 学校E-R实体图
5.通讯录E-R实体图
通讯录的实体具有联系人姓名、地址、联系电话、所属职务、所在学校、所在单位、所属地区7个属性,E-R图如图4-9所示。
联系人姓名联系电话所在单位通讯录所在学校图4-9 通讯录E-R实体图
所属地区地址所属职务
4.2.2 数据表的创建
在上面一节中讲解了实体的E-R图,本节中将根据E-R图的内容,创建企业信息管理系统中的各数据表,在此系统中共涉及到5个数据表的应用,分别为如下。
1、字段采用camel 风格定义
2、用不同颜色区分字段 主键:蓝色 外键:白色
既是主键又是外键:淡蓝色 普通字段:青绿 1.用户信息表
用户信息表(Users)用于存放校园通讯录信息管理系统中所有系统管理用户的信息,用户管理是每个管理系统中必不可少的,也是比较重要的一部分,本系统中进行了较详细的设计,表中各个字段的数据类型、大小以及简短描述如表4-1所示。
表4-1 用户信息表 TB_Users 字段名称 sUserID sUserName sUserPaword sUserSex sUserEmail sUserPhone sUserPurview 2.地区信息表
地区信息表(Client)用于存放校园通讯录信息管理系统中所有地区的信息,地区信息的管理是系统中比较重要的内容,地区的名称是其中的关键信息,表中各个字段的数据类型、大小以及简短描述如表4-2所示。
表4-2 地区信息表
TB_Area 字段名称 sAreaID sAreaName 3.职务信息表
职务信息表(Compact)用于存放校园通讯录信息管理系统中所有职务的信息,职务信息的管理是系统中比较重要的内容,职务的名称是其中的关键信息,表中各个字段的数据类型、大小以及简短描述如表4-3所示。
表4-3 职务信息表
TB_Duty
字段名称 sDutyID sDutyName
字段类型 varchar(20)varchar(50)
字段描述 职务编号[PK] 职务名称
字段类型 varchar(20)varchar(50)
字段描述 地区编号[PK] 地区名称
字段类型 varchar(10)varchar(20)varchar(10)char(2)varchar(20)varchar(20)char(1)
字段描述 用户ID [PK] 用户姓名
记录用户登入本系统时的用户密码
用户性别 用户E-mail 用户的联系电话 用户权限 4.学校信息表
学校信息表(Com_detail)用于存放校园通讯录信息管理系统中所有学校的信息,学校信息的管理是系统中比较重要的内容,学校名称是其中的关键信息,表中各个字段的数据类型、大小以及简短描述如表4-4所示。
表4-4 学校信息表
TB_School 字段名称 sSchoolID sSchoolName iStudentNum sAreaID_FK 5.通讯录信息表
通讯录信息表(product)用于存放校园通讯录信息管理系统中所有通讯录的信息,通讯录信息的管理是系统中比较重要的内容,联系电话是其中的关键信息,表中各个字段的数据类型、大小以及简短描述如表4-5所示。
表4-5 通讯录信息表
TB_AddrList
字段类型 varchar(20)varchar(50)int varchar(20)
字段描述 学校编号[PK] 学校名称 学校人数 地区编号[FK] 字段名称 iAddrID sLinkName sAddre sLinkPhone sUnitName sSchoolID_FK sDutyID_FK sAreaID_FK
字段类型 int varchar(50)varchar(20)varchar(20)varchar(50)varchar(20)varchar(20)varchar(20)
字段描述
通讯录编号(自动编号)[PK] 联系人姓名 地址 联系电话 工作单位 学校编号[FK] 职务编号[FK] 地区编号[PK] 4.2.3 创建视图
学校信息视图表V_SchoolInfo 字段名称 sSchoolName sAreaName
字段类型 varchar(50)varchar(50)
字段描述 学校名称 地区名称 sLinkName sDutyName sLinkPhone
create view V_SchoolInfo as
varchar(20)varchar(20)varchar(20)
联系人姓名 职务名称 联系电话
select sSchoolName,sAreaName,sLinkName,sDutyName,sLinkPhone from TB_AddrList,TB_School,TB_Duty,TB_Area where TB_AddrList.sSchoolID_FK=TB_School.sSchoolID
and and TB_AddrList.sDutyID_FK=TB_Duty.sDutyID TB_AddrList.sAreaID_FK=TB_Area.sAreaID 4.2.4 数据表关系图
在学校通讯录信息管理系统中各数据表的关系图,如图4-10所示。在TB_School数据表中,TB_Area数据表的sDutyID_FK字段作为外键。在TB_AddrList数据表中,TB_School数据表的sSchoolID_FK字段、TB_Area数据表中的sAreaID_FK字段和TB_Duty数据表中的sDutyID_FK字段作为外键。
图4-10 数据表关系图 4.2.5 创建存储过程
因为使用存储过程可以给系统带来优化,所以系统将很大程度地使用存储过程,在系统中共应用了10个存储过程,以Add开头的存储过程为系统中信息添加的存储过程,以Update开头的存储过程为系统中信息修改的存储过程,这些存储过程将会在系统程序文件的后台应用中调用,下面将对系统中应用的存储过程进行解释。
1.AddTB _Users存储过程
AddTB _Users存储过程用于向用户信息表中添加新的用户信息。以下代码表示了这一存储过程。CREATE PROCEDURE AddTB_Users @sUserID varchar(10), @sUserName varchar(20), @sUserPaword varchar(10), @sUserSex char(2), @sUserEmail varchar(20), @sUserPhone varchar(20), @sUserPurview char(1)AS
INSERT INTO TB_Users(sUserID, sUserName, sUserPaword, sUserSex, sUserEmail, sUserPhone,sUserPurview)
VALUES(@sUserID, @sUserName, @sUserPaword, @sUserSex, @sUserEmail, @sUserPhone, @sUserPurview)GO 2.Add 存储过程 Add TB_Area存储过程用于往地区信息表中添加新的地区信息。以下代码表示了这一存储过程。
CREATE PROCEDURE AddTB_Area
@sAreaID varchar(20),@sAreaName varchar(50)AS
INSERT INTO TB_Area(sAreaID,sAreaName)
VALUES(@sAreaID,@sAreaName)GO 3.AddTB_Duty存储过程
AddTB_Duty存储过程用于往职务信息表中添加新的职务信息。以下代码表示了这一存储过程。CREATE PROCEDURE AddTB_Duty
@sDutyID varchar(20),@sDutyName varchar(50)AS
INSERT INTO TB_Duty(sDutyID,sDutyName)
VALUES(@sDutyID,@sDutyName)GO 4.AddTB_School存储过程
AddTB_School 该存储过程用于往学校信息表中添加新的学校信息。以下代码表示了这一存储过程。CREATE PROCEDURE AddTB_School
@sSchoolID varchar(20),@sSchoolName varchar(50),@iStudentNum int,@sAreaID_FK varchar(20)AS
INSERT INTO TB_School(sSchoolID,sSchoolName,iStudentNum,sAreaID_FK)
VALUES(@sSchoolID,@sSchoolName,@iStudentNum,@sAreaID_FK)GO 5.AddTB_AddrList存储过程
AddTB_AddrList存储过程用于往通讯录信息表中添加新的通讯录信息。以下代码表示了这一存储过程。CREATE PROCEDURE AddTB_AddrList
@sLinkName varchar(20),@sAddre varchar(50),@sLinkPhone varchar(20),@sUnitName varchar(20),@sSchoolID_FK varchar(20),@sDutyID_FK varchar(20)AS
INSERT INTO TB_AddrList(sLinkName,sAddre,sLinkPhone,sUnitName,sSchoolID_FK,sDutyID_FK)
VALUES(@sLinkName,@sAddre,@sLinkPhone,@sUnitName,@sSchoolID_FK,@sDutyID_FK)GO 6.UpdateTB _Users存储过程
UpdateTB _Users存储过程用于修改用户信息表中,符合条件的用户信息,其中密码信息不可以更新。以下代码表示了这一存储过程。CREATE PROCEDURE UpdateTB_Users
@sUserID varchar(10),@sUserName varchar(20),@sUserSex char(2),@sUserEmail varchar(20),@sUserPhone varchar(20),@sUserPurview char(1)AS
UPDATE TB_Users SET
sUserID =@sUserID,sUserName =@sUserName,sUserSex=@sUserSex,sUserEmail=@sUserEmail,sUserPhone=@sUserPhone,sUserPurview=@sUserPurview WHERE
sUserID =@sUserID GO 7.UpdateTB_Area存储过程
UpdateTB_Area存储过程用于修改地区信息表中的地区信息。以下代码表示了这一存储过程。CREATE PROCEDURE UpdateTB_Area
@sAreaID varchar(20),@sAreaName varchar(50)AS
UPDATE TB_Area SET
sAreaID =@sAreaID,sAreaName =@sAreaName WHERE
sAreaID =@sAreaID GO 8.UpdateTB_Duty存储过程
UpdateTB_Duty存储过程用于修改职务信息表中的职务信息。以下代码表示了这一存储过程。
CREATE PROCEDURE UpdateTB_Duty
@sDutyID varchar(20),@sDutyName varchar(50)AS
UPDATE TB_Duty SET
sDutyID =@sDutyID,sDutyName =@sDutyName WHERE
sDutyID =@sDutyID GO 9.UpdateTB_School存储过程
UpdateTB_School存储过程用于修改学校信息表中的学校信息。以下代码表示了这一存储过程。CREATE PROCEDURE UpdateTB_School
@sSchoolID varchar(20),@sSchoolName varchar(50),@iStudentNum int,@sAreaID_FK varchar(20)AS
UPDATE TB_School SET
sSchoolID =@sSchoolID,sSchoolName =@sSchoolName,iStudentNum =@iStudentNum,sAreaID_FK=@sAreaID_FK WHERE
sSchoolID =@sSchoolID GO 10.UpdateTB_AddrList存储过程
UpdateTB_AddrList存储过程用于修改通讯录信息表中的通讯录信息。以下代码表示了这一存储过程。
CREATE PROCEDURE UpdateTB_AddrList
@iAddrID int,@sLinkName varchar(20),@sAddre varchar(50),@sLinkPhone varchar(20),@sUnitName varchar(20),@sSchoolID_FK varchar(20),@sDutyID_FK varchar(20)AS
UPDATE TB_AddrList SET
sLinkName =@sLinkName,sAddre =@sAddre,sLinkPhone =@sLinkPhone,sUnitName=@sUnitName,sSchoolID_FK=@sSchoolID_FK,sDutyID_FK=@sDutyID_FK WHERE
iAddrID =@iAddrID GO