1、一.设计题目:图书进销存管理的设计与实现二.设计要求:主要业务描述:一个小型书店的图书进销存的主要业务主要包括图书进货、退货、统计、销售、查询等业务处理过程。各个业务处理过程如下:进货业务:根据某种书籍的库存量及销售情况确定进货数量,根据供应商报价选择供应商。输出一份进货单并自动修改库存量,把本次进货的信息添加到进货库中。退货业务:顾客把已买的书籍退还给书店。输出一份退货单并自动修改库存量,把本次退货的信息添加到退货库中。统计业务:根据销售情况输出统计的报表。一般内容为每月的销售总额、销售总量及排行榜等信息。销售业务:输入顾客要买书籍的信息,自动显示此书的库存量,如果可以销售,打印销售单并修改
2、库存,同时把此次销售的有关信息添加到日销售库中。查询业务:允许用户设置条件进行进货、退货、统计、销售和库存书籍的信息查询。设计要求:1.请根据该业务过程示意图绘制数据流图、画出E-R图(属性按自己的理解设定,但一定要有基本信息、图书分类号、出版社、主编等信息);2.再将其转换成关系模式(要求达到3NF);3.写出创建各表的SQL语句(要含主键、外部键及其它的完整性定义),并指出各表应建哪些索引信息。三.设计过程:1.需求分析1.1处理对象书籍:书号、书名、价格、作者、出版社、分类销售库:销售库单号,日期,价格,数量,书名,图书编号退货库:退货库号,日期,价格,数量退货单:退货单号,书名,数量,
3、日期,退货库号,图书编号进书单:进书单号,数量,书名,价格,进货库号,图书编号,日期。进货库:进货库号,日期,数量,价格,书名针对书店进销存系统,分别对采购部,销售,库存等进行查询资料、以及与同学交流了解,总结出了这些需求信息:对采购,商品在固定的几个供应商中购买,并且一种书只在一个供应商采购;对销售顾客可以根据书籍名要求书店帮忙查询库存、单价,但不能查询进价等内部信息,顾客要是发现书籍不合适,也可以退货,不损坏全额退,损坏不予退货。1.2信息处理及系统功能这个系统由书籍信息模块、供应商信息模块、仓库信息模块和顾客信息模块等可以实现对书籍的进销存管理以及增删改操作。系统功能有:(1)书籍信息的
4、管理包括书籍基本信息的更新、删除操作(2) 顾客信息管理:顾客号,顾客名,退换货1.3数据库系统性能需要能在小型书店中应用,对进销存进行完善管理,节约用户成本和时间,为用户提供方便,并有序管理库存、销售、采购等之间的关系。2.图像处理2.1系统模块图进销存管理系统系统管理存货管理销售管理退货管理进货管理3. 关系模式购买单(订货单号号,书号,书名,购买量,购买日期,费用,进货库号);退书单(顾客号,书号,书名,退书数量,退货库号);书籍(书号,书名,价格,作者,出版社,仓库号,数量);销售库(销售库单号,书号,日期,价格,数量,书名);退货库(退货库号,日期,价格,数量)进货库(进货库号,日期
5、,数量,价格,书名)规范化考虑到建表的规范化,在关系模式中购书单和退书单有部分函数依赖,还有就是书籍与仓库之间的联系没办法查看到一种有多少本,这样会有问题出现,所以对购书单和退书单以和书籍之间的联系进行规范化。购买单(订货单号号,书号,书名,购买量,购买日期,费用,进货库号);退书单(顾客号,书号,书名,退书数量,退货库号);书籍(书号,书名,价格,作者,出版社,仓库号,数量);销售库(销售库单号,书号,日期,价格,数量,书名);退货库(退货库号,日期,价格,数量)进货库(进货库号,日期,数量,价格,书名)四. 规范化五. 代码和结果:/*建库和建表*/CREATE database 图书经销
6、存数据库;CREATE TABLE book ( bid int(11) NOT NULL, bname varchar(44) DEFAULT NULL, number int(11) unsigned DEFAULT NULL, press varchar(44) DEFAULT NULL COMMENT 出版社, Editor varchar(44) DEFAULT NULL COMMENT 主编, book_id varchar(11) DEFAULT NULL, PRIMARY KEY (bid) ENGINE=InnoDB DEFAULT CHARSET=utf8 CREATE T
7、ABLE dingshudan ( did int(11) NOT NULL, number int(11) DEFAULT NULL, name varchar(44) DEFAULT NULL, price float DEFAULT NULL, data date DEFAULT NULL, bid int(11) DEFAULT NULL, jid int(11) DEFAULT NULL, PRIMARY KEY (did), KEY jid (jid), KEY dingshudan_ibfk_1 (bid), CONSTRAINT dingshudan_ibfk_1 FOREIG
8、N KEY (bid) REFERENCES book (bid), CONSTRAINT dingshudan_ibfk_2 FOREIGN KEY (jid) REFERENCES jinhuoku (jid) ENGINE=InnoDB DEFAULT CHARSET=utf8CREATE TABLE jinhuoku ( jid int(11) NOT NULL, data date DEFAULT NULL, number int(11) DEFAULT NULL, price float DEFAULT NULL, name varchar(44) DEFAULT NULL, PR
9、IMARY KEY (jid)ENGINE=InnoDBDEFAULTCHARSET=utf8 CREATE TABLE tuishudan ( tsid int(11) NOT NULL, name varchar(44) DEFAULT NULL, number int(11) DEFAULT NULL, data date DEFAULT NULL, tid int(11) DEFAULT NULL, bid int(11) DEFAULT NULL, price double DEFAULT NULL, PRIMARY KEY (tsid), KEY tid (tid), KEY tu
10、ishudan_ibfk_2 (bid), CONSTRAINT tuishudan_ibfk_1 FOREIGN KEY (tid) REFERENCES tuishuku (tid), CONSTRAINT tuishudan_ibfk_2 FOREIGN KEY (bid) REFERENCES book (bid) ENGINE=InnoDB DEFAULT CHARSET=utf8CREATE TABLE tuishuku ( tid int(11) NOT NULL, data date DEFAULT NULL, price double DEFAULT NULL, number
11、 int(11) DEFAULT NULL, name varchar(44) DEFAULT NULL, PRIMARY KEY (tid), KEY bid (name)ENGINE=InnoDBDEFAULTCHARSET=utf8 CREATE TABLE xiaoshouku ( xid int(11) NOT NULL AUTO_INCREMENT, data date DEFAULT NULL, price float DEFAULT NULL, number int(11) DEFAULT NULL, name varchar(44) DEFAULT NULL, bid int
12、(11) DEFAULT NULL, PRIMARY KEY (xid), KEY bid (bid), CONSTRAINT xiaoshouku_ibfk_1 FOREIGN KEY (bid) REFERENCES book (bid) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8use 图书经销存数据库;CREATE table 购书表单( GSno char(9)primary key, bna char(20), GSnumber int, GStime date, cost BIGINT);/*创建触发器*/DELIMIT
13、ER $USE shujuku$DROP TRIGGER /*!50032 IF EXISTS */ jinshudan$CREATE TRIGGER jinshudan AFTER INSERT ON dingshudan FOR EACH ROW BEGINUPDATEbook,dingshudan SET book.number = book.number+dingshudan.number WHERE book.bid = dingshudan.bid; END;$DELIMITER ;六. 课设心得:通过这次课程设计发现这其中需要的很多知识我们没有接触过,去图书馆查资料的时候发现我们
14、前边所学到的仅仅是皮毛,还有很多需要我们掌握的东西我们根本不知道。同时也发现有很多已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要我们不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。在这个过程中我们将深刻理解所学知识,同时也可以学到不少很实用的东西。从各种文档的阅读到开始的需求分析、概念结构设计、逻辑结构设计、物理结构设计。亲身体验了一回系统的设计开发过程。很多东西书上写的很清楚,貌似看着也很简单,思路非常清晰。但真正需要自己想办法去设计一个系统的时候才发现其中的难度。经常做到后面突然就发现自己一开始的设计有问题,然后又回去翻工,在各种反复中不断完善自己的想法。以上基本是这次实习的体会了,设计进行的非常艰难,编码非常不容易,才发现做一个项目最重要的不在于如何实现,而是实现之前的需求分析和模块设计。创新很难,有些流行的系统其实现并不难,难的在于对市场的分析和准确定位。设计,是一个任重道远的过程。THANKS !致力为企业和个人提供合同协议,策划案计划书,学习课件等等打造全网一站式需求欢迎您的下载,资料仅供参考