您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 报刊订阅管理的设计与实现
题目4:报刊订阅管理的设计与实现一:问题描述设计一个报刊订阅管理功能,订阅人员可以订阅报刊,同时可以统计各种信息。二:需求分析①基本信息:主要录入订阅人员信息、订阅的报刊基本信息;②订阅报刊:已经登记的订阅人员订阅某一类或某几类报刊,计算出其金额,并可以直接给出该订阅人员需要交纳的订阅费用总计金额;③查询处理:按人员查询、按报刊查询、按部门查询有关订阅信息,对查询结果能进行预览和打印;④统计处理:按报刊统计、按人员统计、按部门统计,对统计结果能进行预览和打印。数据流图:系统功能模块图:三:概念结构设计ER图:四:逻辑结构设计1关系模式:部门信息表:(部门标号,主管人,部门名称)人员信息表:(员工编号,员工部门编号,姓名,联系方式)报刊信息表:(报刊编号,报刊名字,报刊类别,订阅金额)订阅信息表:(人员编号,报刊编号,订阅日期)2创建数据库和表创建数据库CREATEDATABASEIFNOTEXISTS`newsstand`创建部门信息表CREATETABLEIFNOTEXISTS`departmental_information`(`id`int(11)NOTNULLAUTO_INCREMENT,`mannger_name`varchar(50)DEFAULTNULL,`departmental_name`varchar(50)DEFAULTNULL,PRIMARYKEY(`id`))创建人员信息表CREATETABLEIFNOTEXISTS`staff_information`(`id`int(11)NOTNULLAUTO_INCREMENT,`department_id`int(11)DEFAULTNULL,`name`varchar(50)DEFAULTNULL,`phone`varchar(50)DEFAULTNULL,PRIMARYKEY(`id`),KEY`stuff_department`(`department_id`),CONSTRAINT`stuff_department`FOREIGNKEY(`department_id`)REFERENCES`departmental_information`(`id`)ONDELETECASCADEONUPDATECASCADE)外键约束创建报刊信息表CREATETABLEIFNOTEXISTS`news_information`(`id`int(11)NOTNULLAUTO_INCREMENT,`news_name`varchar(50)DEFAULTNULL,`news_type`varchar(50)DEFAULTNULL,`news_money`int(11)DEFAULTNULL,PRIMARYKEY(`id`))创建订阅信息表CREATETABLEIFNOTEXISTS`subscribe_information`(`stuff_id`int(11)DEFAULTNULL,`news_id`int(11)DEFAULTNULL,`subscribe_data`varchar(50)DEFAULTNULL,KEY`subscribe_stuff`(`stuff_id`),KEY`subscribe_news`(`news_id`),CONSTRAINT`subscribe_stuff`FOREIGNKEY(`stuff_id`)REFERENCES`staff_information`(`id`)ONDELETECASCADEONUPDATECASCADE,CONSTRAINT`subscribe_news`FOREIGNKEY(`news_id`)REFERENCES`news_information`(`id`)ONDELETECASCADEONUPDATECASCADE)外键约束:3安全性控制创建人事管理员工账号renshiguanliCREATEUSER'renshiguanli'@'localhost'IDENTIFIEDBY'666666';权限:录入,修改,删除员工信息录入,修改部门信息查询其他信息。GRANTSELECT,INSERTdelect,ONstaff_information,departmental_information,TO'renshiguanli'@'%';GRANTSELECTONsubscribe_information,news_information,TO'renshiguanli'@'%';创建管理订阅员工账号dingyueguanliCREATEUSER'dingyueguanli'@'localhost'IDENTIFIEDBY'666666';权限:录入,删除,修改订阅信息录入,删除,修改报刊信息查询统计信息查询其他信息GRANTSELECT,INSERTdelectONstaff_information,departmental_information,TO'dingyueguanli'@'%';GRANTSELECTONsubscribe_information,news_information,TO'dingyueguanli'@'%';四:功能实现(1)录入人员信息insertintostaff_information(department_id,name,phone)values(部门编号,员工名字,联系电话);(2)录入报刊信息insertintonews_information(news_name,news_type,news_money)values(报刊名字,报刊类型,订阅金额)(3)金额计算先创建统计试图CREATEVIEWsubscribe_viewasSelectname,phone,department_id,subscribe_data,news_name,news_type,cfromnews_information,staff_information,subscribe_informationWheresubscribe_information.stuff_id=staff_information.idAndsubscribe_information.news_id=news_information.id查询识图计算金额Selectname,phonesum(news_money)asmoneyfromsubscribe_viewGroupbyname;(4)录入订阅信息insertintosubscribe_information(stuff_id,news_id,subscribe_data)values(人员编号,报刊编号,订阅日期)(5)根据报刊统计根据查询视图来进行统计Selectnews_name,news_type,count(*)asnumberfromsubscribe_viewGroupbynews_name;(6)根据部门统计根据视图查询出部门对应的报刊数量和种类Selectdepartmental_name,news_name,news_type,count(news_type)asnumberfromsubscribe_view,departmental_informationwheredepartment_id=departmental_information.idGroupbydepartment_id;(7)根据人员统计查询视图根据人员分组Selectname,news_name,news_type,count(news_type)asnumberfromsubscribe_view,departmental_informationGroupbyname;(8)根据人员查询Selectname,news_name,news_type,count(news_type)asnumberfromsubscribe_view,departmental_informationwherename=查询人员姓名(9)根据部门查询Selectdepartmental_name,news_name,news_type,count(news_type)asnumberfromsubscribe_view,departmental_informationwheredepartmental_name=部门名称(10)根据报刊查询Selectnews_name,news_type,count(*)asnumberfromsubscribe_viewWherenews_name=报刊名字五:实验心得本次试验最初开始做的时候,先分析了系统的需求,对于本系统需要由两个角色,一个是人事管理员来维护人员信息,和部门信息,可以对着两个表进行删除,修改,查询,二是二个人可以来管理订阅信息,同时对查询信息进行查看,对统计信息进行查看。系统内所有的查询统计都是通过视图来实现的,系统内通过视图subscribe_view来查询和统计,其中包括了人员订阅的详细信息,可以通过查询这个视图来进行统计和查询。系统中报刊订阅表中有人员信息的主键和报刊信息的主键,报刊订阅人员通过查询这个表连接人员信息表和报刊信息表组成完整的订阅信息。
本文标题:报刊订阅管理的设计与实现
链接地址:https://www.777doc.com/doc-7346338 .html