1、1 项目背景及需求分析1.1项目背景随着网络的不断发展,网上论坛信息越来越多,发贴的人也越来越多。自然而然,回贴的人也越来越多。因此,我们需要一个论坛管理系统,来统计作者信息、贴子信息和回复信息,来使得论坛信息能够更好的运作。所以我设计这个论坛管理系统来有效地管理论坛信息,使得它能够更加规范和科学。1.2需求分析1.2.1数据需求论坛管理信息系统需要完成功能主要有:(1)作者信息模块:用来管理作者信息,包括作者昵称、贴子编号、性别、年龄、职业、爱好等;(2)贴子信息模块:用来管理贴子信息,包括贴子编号、发贴日期、时间、等级等;(3)回复日期模块:用来管理回复信息,包括作者昵称、回复时间、贴子编
2、号等。1.2.2事物需求(1)在作者信息模块部分,要求: a.可以查看作者的个人信息; b.可以对作者信息进行添加及删除的操作。 (2 )在贴子信息部分,要求: a.可以浏览贴子信息;b.可以对贴子信息进行维护,包括添加及删除的操作。(3)在回复日期部分,要求:a.可以查看回复日期;b.可以对回复日期进行维护操作。2 概念结构设计2.1抽象出系统实体根据分析,论坛信息管理系统的基本实体为:作者,贴子,回复信息。而每个实体应具有如下所列的基本属性,并标记主键(加下划线的属性),画出E-R图。作者(编号,昵称,年龄,性别,职业,爱好),其中编号为主键;贴子(编号,发贴日期,时间,等级),其中编号为
3、主键;回复信息(作者昵称,编号,时间),其中编号为主键;2.2局部E-R图在人事信息管理系统中,涉及六个实体,分别是:管理员、员工、部门、员工工作信息、工资、考勤。这六个实体间存在关系。根据需求分析得到一个作者能发很多个贴子,所以作者和贴子之间是一对多的关系;贴子下面能有很多个回复信息,所以回复信息和贴子之间是多对多的关系;得到各个实体局部E-R图如下:2.3全局E-R图3 逻辑结构设计在概念结构设计阶段得到E-R图之后,根据转换规则将E-R图转换成关系模型,得到人事信息管理系统的关系模型如下:(1)作者信息实体集可以转换为关系:作者(作者昵称、性别、年龄、职业、爱好) 其中作者昵称为主键;符
4、合第三范式。(2)贴子信息实体集可以转换为关系:贴子(贴子编号、发贴日期、时间、等级)其中贴子编号为主键;(3)回复信息实体集可以转换为关系:回复信息(回复作者昵称、回复时间)其中贴子编号为主键;4 创建数据库及相关操作4.1 创建数据库4.1.1 作者信息表属性名称数据类型可否为空主码或索引约束条件rnovarchar(10)否主码rnamerageint(4)是rssexchar(2)rprofessionalrhobbycreate table reader(rno varchar(10),rname varchar(10),rage int(4),rssex char(2),rprof
5、essional varchar(10),rhobby varchar(10)primary key(rno,rname) );4.1.2 帖子信息表pnopdateptimeplevelcreate table post (pno varchar(10), pdate varchar(10), ptime varchar(10), plevel varchar(10) primary key(pno)4.1.3 回复信息表varcharrtimeCreate table reply (rno varchar (10), rname varchar(10), rtime varchar(10)
6、 primary key(rno)4.2建立视图(1)视图建立v_1查询作者信息表内容create view v_1 asselect rname,rage,rssex,rprofessional,rhobby from reader;(2)视图建立v_2 查询作者信息表中男性的爱好Create view v_2 asSelect rhobby from reader where rssex=男;4.3建立存储过程(1)存储过程num_post建立 执行存储过程num_post,返回你输入的作者编号发贴的总数;DELIMITER /CREATE PROCEDURE num_post(IN tm
7、p_pno char(10),OUT count_num INT) - READS SQL DATA BEGIN SELECT COUNT(*) INTO count_num from post WHERE pno=tmp_pno;- END /(2)存储过程proc_o建立执行存储过程proc_o,返回所有等级为A的贴子的所有信息; DELIMITER / CREATE PROCEDURE proc_o SELECT pno,pdate,ptime from post WHERE plevel=A ORDER BY END/4.4建立触发器触发器的建立create trigger t_1 o
8、n reader after insert as select * from reader select * from inserted go insert into reader(rname,rno,rssex,rage,rprofessional,rhobby) values(王五,07,男,20,学生,听歌);4.5查询问题及查询结果1.查询作者信息表中所有性别为男的作者的年龄:select rage from reader where rssex=男;2.查询所有等级为A的帖子:select pno from post where plevel=A;3.查询03号帖子的信息:Select * from reader where rno.reader=03;4.查询03号帖子的等级:Select plevel from post where pno=03;5.修改01号帖子的姓名为韩五: Update reader set rname=韩五 where rno=01;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1