4.数据库设计
作为网络的一个重要应用,数据库在网站建设与网站营销中发挥着重要的作用,与普通网站相比而言,具有数据库功能的网站和网页我们通常称之为动态页面,也就是说页面不是一成不变的,页面上内容(或部分内容)是动态生成的,可以根据数据库中的相应部分内容的调整而发生变化,使网站内容更灵活,维护更方便,更新更便捷。所以数据库设计是项目开发中的一个非常重要的环节,数据库设计的好坏直接影响到系统的效率和实现效果。数据库设计主要在于表的设计及各个表之间的关系设计。 4.1概念设计
概念结构设计是整个数据库设计的关键,它通过E-R图来表示实体(即数据对象)、属性和联系的方法,用来描述现实世界的概念模型。在此我们用E-R图来表示数据之间的关系。
roleIDroleID
roleName 图 4.1 角色信息E-R图
sexpassworduserIdentityuserNameEmialroleIDuser
图 4.2 用户信息E-R图
coursecourseIDtemp2courseName
temp1 图 4.3 课程信息E-R图
questionIDcourseIDquestionContentanswer1questionanswer2answer3rightAnswer
answer4 图 4.4 试题信息E-R图
tiankongIDcourseIDtiankongtiankongContentAnswer
图 4.5 填空题信息表
panduanIDcourseIDpamduanpanduanContentAnswer
图 4.6 判断题信息表
4.2逻辑设计
经过分析初步确定在数据库中分别建立用户信息表、角色信息表、选择试题信息表填空题信息表、判断题信息表、课程信息表等六张表,如下所示: roleID(roleID,roleName)
question(questioneID,courseID,qusetionContent,answer1,answer2,answer3,answer4,rightAnswer) course(courseID,courseName,temp1,temp2)
user(username,password,sex,userIdentity,Email,roleID) pamduan(panduanID,course,panduanContent,Answer) tiankong(tiankongID,coursed,tiankongContent,Answer)
4.3数据字典
利用数据字典,可以进一步描述数据流图中的相关元素。下面列出了数据字典。 名称 角色信息表 别名 角色信息 描述 用户角色信息,用于区分用户的操作权限 定义 角色信息=角色编号+角色名 位置 保存在数据库中 名称 用户信息管理 别名 用户信息 描述 用户角色信息,用于记录用户的基本信息 定义 用户信息=用户名+密码+性别+身份证号码+电子邮件 位置 保存在数据库中 名称 课程信息管理 别名 课程信息 描述 用于管理课程信息 定义 课程信息=课程编号+课程名 位置 保存在数据库中 名称 选择题试题表 别名 选择试题 描述 用于对选择题的查询 定义 选择题信息=题号+题干+答案+正确答案 位置 保存在数据库中
名称 填空题试题表 别名 填空试题 描述 用于对填空题的查询 定义 填空题信息=题号+题干+正确答案 位置 保存在数据库中 名称 判断题试题表 别名 判断试题 描述 用于对判断题的查询 定义 判断题信息=题号+题干+正确答案 位置 保存在数据库中 4.7 数据字典
4.4物理设计
本系统共有六张表,角色表(roleID)主要存放角色信息,用户表(user)存放用户信息,选择试题表(question)存放试题信息,判断信息表(pamduan),填空信息表(tiankong),课程表(course)存放课程信息。详细设计分别为下表所示:
表4.1 角色信息表
字段 roleID roleName
类型 Int Varchar
字段长度 自增长 20
是否为空 否 否
是否为主键
主键 否
说明 角色编号 角色名
表4.2 用户信息表
字段 UserName Password Sex Useridentity E-mail roleID
类型 Varchar Varchar Varchar Varchar Varchar Int
字段长度 50 50 2 20 50 —
是否可为空
否 否 可以 可以 可以 否
是否为主键
主键 否 否 否 否 外键
说明 用户名 密码 性别 身份证号码 电子邮箱 角色编号
表4.3 课程信息表
字段 CourseID courseName Temp1 Temp2
类型 Int Varchar Varchar Varchar
字段长度 自增长 50 100 100
表4.4 选择试题信息表
字段 questionID courseID questionContent
answer1 answer2 answer3 answer4 rightAnswer
类型 Int Int Varchar Varchar Varchar Varchar Varchar Varchar
字段长度 自增长 — 500 100 100 100 100 50
是否为空 否 否 可以 可以 可以 可以 可以 否
是否为主键
主键 否 否 否 否 否 否 否
说明 题号 课程编号 题干 A答案 B答案 C答案 D答案 正确答案
是否为空 否 否 可以 可以
是否为主键
主键 否 否 否
说明 课程编号 课程名 备用字段1 备用字段2
表4.5 判断试题信息表
字段 panduanID courseID panduanContent
Answer
类型 Int Int Varchar Varchar
字段长度 自增长 — 500 50
表4.6 填空题信息表
字段 tiankongID courseID TiankongCentent
Answer
类型 Int Int Varchar Varchar
字段长度 自增长 — 500 50
是否为空 否 否 可以 否
是否为主键
主键 否 否 否
说明 题号 课程表号 题干 正确答案
是否为空 否 否 可以 否
是否为主键 主键 否 否 否
说明 题号 课程编号 题干 正确答案
对应的数据库创建语句如下: create table [roleID] ( roleID int identity(1,1) primary key, roleName varchar(20) ) Go
create table [user] ( userName varchar(50) primary key, password varchar(50) not null,