SQL数据库设计案例
系统功能需求分析
2.2.1 系统管理员的需求分析
系统管理员具有系统的最高权限,主要具备以下功能:
1)用户管理。系统管理员可以对注册的用户分配权限,同时也可以对用户信息进行添加、查询、修改与删除操作。
2)主题管理。为了更方便对志愿活动进行管理,系统管理员可以创建志愿活动的主题,也可以对其进行修改与删除的操作处理。
2.2.2 志愿者的需求分析
志愿者是普通用户,主要具备以下功能:
1)个人信息管理。用户注册后,可以进入个人中心查看、修改个人资料、密码。
2)活动报名管理。用户可以查看或者取消目前待审核的志愿活动,也可以查看和管理已参加过的志愿活动信息。
3)留言板管理。用户可以对在留言板发表过的留言进行修改、删除操作。
2.2.3 活动管理员的需求分析
活动管理员最是普通用户,主要具备以下功能:
1)个人信息管理。活动管理员可以修改个人资料以及密码。
2) 志愿发布管理。活动管理员登录后台后,填写相关的志愿活动信息即可发布。同时,也可以对发布的志愿活动进行修改、查询。
3)活动报名管理。活动管理员可以对已报名的志愿活动申请进行审核。
4)留言管理。用户在志愿活动详情页面的留言板进行留言后,活动管理员需要审核留言内容,并做出相关处理。
5)志愿活动报名统计。活动管理员可以对报名的志愿活动人数进行统计,同时也可以输出参加活动的人员名单。
2.3 业务流程分析
业务流程分析是对业务功能分析的进一步细化,从而得到反映业务流程的图,即业务流程图。
2.3.1 业务流程图概念
业务流程图是一种描述系统中各单位、人员之间的业务关系、操作顺序和信息流向的重要工具[4]。业务流程图的基本符号如图1所示。
图1 业务流程图的基本符号
2.3.2 业务流程图(一稿)
用户在使用该报名系统的基本流程是,用户注册后,输入正确的用户名以及密码,系统会根据登录者的权限来判定该用户的角,跳转到对应的页面。为了用户浏览内容的方便,首页提供搜索功能,用户可以输入主题关键字,第一时间获取想要的信息。用户对感兴趣的活动,可以点击进入报名详情页面报名,也可在该活动底部留言板留言。活动管理员用户登录成功后,可以发布志愿活动信息,审核志愿者的活动报名申请以及留言。审核通过后,后台会对志愿者报名信息、留言信息进行存档,输出相应的报表。系统管理员登录成功后,拥有系统的最高权限,可以对所有用户进行管理。
通过分析需求以及业务之间来往的关系,可以得出业务流程图,如图2所示。
图2 业务流程图
图3    全局ER图
(  2)逻辑结构设计(四五级标题格式弄反了)
在逻辑设计阶段,将概念设计阶段建立的E-R图模型转换为关系模型,并按用户的需要和逻辑设计的转换原则进行关系规范化,最终实现模式优化。根据上述E-R图可以将转化为如下的关系模式:
(1)用户表用户编号, 姓名,性别,专业,,密码,权限,服务时长);
2)活动信息表(活动编号,活动主题,活动名称,活动地点,活动内容,招募人数,报名要求,开始时间,截止时间,发布状态);
(没看出活动是由哪个活动管理员发布的?)
3)报名表(报名编号志愿者编号,活动编号,报名状态);
4)留言表(留言编号,留言内容,留言时间,活动编号,志愿者编号,审核结果)
5)主题表(主题编号,主题名称,活动发布数,创建人,主题状态);
6)查看(主题编号主题编号)。什么意思?
                                图2    业务流程图
图3 志愿者服务管理全局ER图
2)逻辑结构设计
在逻辑设计阶段,将概念设计阶段建立的E-R图模型转换为关系模型,并按用户的需要和逻辑设计的转换原则进行关系规范化,最终实现模式优化。根据上述E-R图可以将转化为如下的关系模式:
(1)用户(用户编号, 姓名,性别,专业,,密码,权限,服务时长);
(2)志愿活动(活动编号,活动主题,活动名称,活动地点,活动内容,招募人数,报名要求,开始时间,截止时间,发布人,发布状态,审核人);
(3)报名(报名编号志愿者编号活动编号,报名状态);
(4)留言(留言编号,留言内容,留言时间,活动编号志愿者编号,审核结果,审核人);
(5)主题(主题编号,主题名称,活动发布数,创建人,主题状态)
*注意:这里的用户包括系统管理员、志愿者以及活动管理员。
根据以上叙述,完成如下任务:
(1)帮忙理清“志愿者服务管理系统”的业务流程;
数据库应用案例
(2)绘制出该系统的全局E-R模型;
(2)将该E-R模型转换为一组等价的关系模式,并标出各关系模式的主码。