数据库课程设计VCD出租管理_第1页
数据库课程设计VCD出租管理_第2页
数据库课程设计VCD出租管理_第3页
数据库课程设计VCD出租管理_第4页
数据库课程设计VCD出租管理_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库设计说明书1.课程设计题目:音响店 VCD 零售出租管理系统1.1题目要求:音响店 VCD 零售出租管理系统,实现 VCD 类型及信息的管理;实现 VCD 的入库管理; 实现 VCD 的借还管理; 实现 VCD 的零售管理; 创建触发器,入库登记、零售时自动修改、现货和库存,借、还时自动 修改现货数量; 创建存储过程统计某段时间内各 VCD 的销售、借还数量; 创建视图查询各类 VCD 的库存情况; 建立数据库相关表之间的参照完整性约束。2.引言2.1编写目的随着社会经济的发展,人们对生活质量的要求越来越高,对生活中的娱乐追求也是越来越高,传统的娱乐方式已经发生了变化。作为VCD销售商来

2、说,更多的用户需要对VCD进行租赁。在租赁的过程中需求量大,操作复杂却流程完全相同,销售/租赁商频繁的做着相同的工作,既浪费时间又不能提高效率,这要求编写一个方便使用的VCD出租系统以其解决上诉问题。实现对商品的浏览,租赁和出售,并对销售的情况作出相关的统计,并对各类的VCD分类影片进行一个统计。利用该系统体现了管理者的思想,实现计算机的统一管理。2.2背景随着信息时代的到来,我们的生活方式发生了巨大的变化。利用计算机能够帮助我们解决各种问题。各种的应用软件如雨后春笋一样的出现就是一个很好的体现。人们对计算机智能化的要求越来越高,许多传统的手工管理逐渐被计算机系统所代替。人们的生活质量的要求越

3、来越高,对生活中的娱乐方式也更加多样化,已经不再是很长的时间看一部很经典的电影。在过去的VCD出租和销售中都是依靠的商家的自己的手工的筛选和销售。对大量的客服而言的商家是既费时又费力,对VCD的管理也不能做到相对的统一,有明确的分类。计算机的出现,提供了一个很好的解决的方案,能够通过相关的管理软件对其进行统一的管理、销售、租赁等等商业活动。开发VCD零售/出租管理系统帮助商家提高效率,降低经营成本,优化资源配置,从而实现商品的最大利益化。2.3参考资料1 张海藩软件工程导论(第4 版)北京:清华大学出版社,20052 刁成嘉UML系统建模与分析设计北京:机械工业出版社,20073 UML基础与

4、Rose建模案例北京:人民邮电出版社,20044 刘乃丽 ASPNET 20 网络开发详解北京:电子工业出版社,20085 邵志东 软件开发这点儿事软件开发工具手册 6(法)斯梅切尔(Smacchia,P.) C#和.NET2.0实战:平台、语言与框架.北京:人民邮电出版社,2008.1 3.结构设计3.1逻辑结构设计 影片类型1属于n影片出租销售客户nn、nnn类型号类型名称导演片名影片编号类型号主演上市时间库存数量格式身份证号顾客编号销售时间销售数量顾客编号影片编号影片编号押金出租数量出租时间归还时间出租编号状态顾客编号影片实体属性图:导演片名影片编号类型号主演上市时间库存数量格式影片影片

5、类型实体属性图:类型号类型名称影片类型出租关系E-R图:出租数量出租时间押金影片编号归还时间出租编号顾客编号状态出租销售关系E-R图:销售销售时间销售数量顾客编号影片编号顾客实体E-R图:客户身份证号顾客编号3.2关系图:3.3物理结构设计:T_TYPE影片类型:列名说明类型(长度)备注T_ID类型号TINYINTNOT NULLT_NAME类型名称CHAR(20)NOT NULLFILM影片表:列名说明类型(长度)备注T_ID类型号TINYINTNULLF_NUMBER影片编号CHAR(16)NOT NULLF_NAME片名CHAR(50)NULLF_DIRECT导演CHAR(10)NULL

6、F_ACT主演CHAR(10)NULLF_TIME上市时间DATETIMENULLF_STOCK库存数量TINYINTNULLF_STYLE格式CHAR(10)NULLCLIENT顾客表:列名说明类型(长度)备注CNUMBER顾客编号CHAR(18)NOT NULLIDNUMBER身份证号TINYINTNOT NULLSELL销售表:列名说明类型(长度)备注F_NUMBER影片编号CHAR(10)NOT NULLCNUMBER顾客编号TINYINTNOT NULLS_NUMBER销售数量TINYINTNULLS_TIME销售时间DATETIMENULLHIRE出租表:列名说明类型(长度)备注F

7、_NUMBER影片编号CHAR(10)NULLH_ID出租编号CHAR(10)NOT NULLCNUMBER顾客编号TINYINTNULLH_INPUT押金MONEYNULLH_NUMBER出租数量TINYINTNULLH_TIME出租时间DATETIMENULLH_REVENT归还时间DATETIMENULLH_FLAGE状态INTNULLAdmin管理员表:列名说明类型(长度)备注ID_NAME身份证号char(20)NULLPWS登陆密码char(20)NULLID用户标识IntNULL4.视图脚本-创建视图,查询各类VCD的库存情况USE VCDGOCREATE VIEW V_TEPY

8、_NUMBERAS SELECT FILM.T_ID AS A_ID,SUM(FILM.F_STOCK) AS A_STOCK FROM FILM GROUP BY FILM.T_ID GO5.触发器脚本(创建触发器:在向film表中插入或修改数据的时候必须是大于等于的)CREATE TRIGGER TRIGGER_PUTINON FILM FOR INSERT,UPDATEASDECLARE F_STOCK TINYINTSELECT F_STOCK=F_STOCK FROM INSERTEDIF F_STOCKFILM_NUMBER) ROLLBACK TRANSACTIONENDGO(创

9、建SELL中插入时判断是否可以插入)CREATE TRIGGER TRIGGER_SELLON SELL FOR UPDATE,INSERT AS IF UPDATE(S_NUMBER)BEGINDECLARE NUMBER TINYINT-给出的新的更新值DECLARE F_NUMBER CHAR(16)-得到正在被修改的行的影片编号DECLARE FILM_NUMBER TINYINT-得到原来的影片编号对应的存储数据SELECT NUMBER=S_NUMBER FROM INSERTEDSELECT F_NUMBER=F_NUMBER FROM INSERTEDSELECT FILM_N

10、UMBER=F_STOCK FROM FILMWHERE FILM.F_NUMBER=F_NUMBERIF(NUMBERFILM_NUMBER) ROLLBACK TRANSACTIONENDGO6.存储过程脚本(创建存储过程,对FILM表中数据进行查询)CREATE Procedure Pro_FILM_SELECT F_NUMBER_IN CHAR(16), F_NUMBER_OUT CHAR(16) OUTPUT, F_DIRECT_OUT CHAR(10) OUTPUT, F_NAME_OUT CHAR(50) OUTPUT, F_TIME_OUT DATETIME OUTPUT, F

11、_STOCK_OUT TINYINT OUTPUT, F_STYLE_OUT CHAR(10) OUTPUTASBEGIN SELECT F_NUMBER_OUT=F_NUMBER, F_DIRECT_OUT=F_DIRECT, F_NAME_OUT=F_NAME, F_TIME_OUT=F_TIME, F_STOCK_OUT=F_STOCK, F_STYLE_OUT=F_STYLE FROM FILM WHERE F_NUMBER=F_NUMBER_INENDGO(执行Pro_FILM_SELECT(查询)存储过程)declare F_NUMBER_IN CHAR(16), F_NUMBER

12、_OUT CHAR(16) , F_DIRECT_OUT CHAR(10) , F_NAME_OUT CHAR(50) , F_TIME_OUT DATETIME , F_STOCK_OUT TINYINT , F_STYLE_OUT CHAR(10) SELECT F_NUMBER_IN=F-200exec Pro_FILM_SELECT F_NUMBER_IN,F_NUMBER_OUT OUTPUT, F_DIRECT_OUT OUTPUT, F_NAME_OUT OUTPUT, F_TIME_OUT OUTPUT, F_STOCK_OUT OUTPUT, F_STYLE_OUT OUTP

13、UTPRINT F_NUMBER_OUT PRINT F_DIRECT_OUTPRINT F_NAME_OUTPRINT F_TIME_OUTPRINT F_STOCK_OUTPRINT F_STYLE_OUTGO(修改存储过程,影片编号不能改其余参数可以修改)CREATE Procedure Pro_FILM_CHANGE F_NUMBER_IN CHAR(16), F_DIRECT_OUT CHAR(10), F_NAME_OUT CHAR(50), F_TIME_OUT DATETIME, F_STOCK_OUT TINYINT, F_STYLE_OUT CHAR(10)ASBEGIN

14、UPDATE FILM SET F_DIRECT=F_DIRECT_OUT, F_NAME=F_NAME_OUT, F_TIME=F_TIME_OUT, F_STOCK=F_STOCK_OUT, F_STYLE=F_STYLE_OUT WHERE F_NUMBER=F_NUMBER_INENDGO(执行Pro_FILM_CHANGE(修改)存储过程)DECLARE F_NUMBER_IN CHAR(16), F_DIRECT_OUT CHAR(10), F_NAME_OUT CHAR(50), F_TIME_OUT DATETIME, F_STOCK_OUT TINYINT, F_STYLE_

15、OUT CHAR(10)SELECT F_NUMBER_IN=YP011SELECT F_DIRECT_OUT=张艺谋SELECT F_NAME_OUT=猛龙过江SELECT F_TIME_OUT=2013/1/16 19:50:11SELECT F_STOCK_OUT=40SELECT F_STYLE_OUT=VOBEXEC Pro_FILM_CHANGE F_NUMBER_IN,F_DIRECT_OUT,F_NAME_OUT,F_TIME_OUT, F_STOCK_OUT,F_STYLE_OUTSELECT * FROM FILM WHERE F_NUMBER=YP011GO(为数据表HI

16、RE创建修改,插入存储过程-表示了一个借出的过程)ALTER PROCEDURE HIRE_INSERT F_NUMBER_IN CHAR(16), CNUMBER_IN TINYINT, H_ID_IN CHAR(16), H_NUMBER_IN TINYINT, H_INPUT_IN MONEYASBEGIN DECLARE NEWTIME DATETIME SET NEWTIME=(SELECT CONVERT(VARCHAR(100),GETDATE(),120) INSERT INTO HIRE (F_NUMBER,CNUMBER,H_ID,H_NUMBER,H_TIME,H_INP

17、UT) VALUES(F_NUMBER_IN,CNUMBER_IN,H_ID_IN,H_NUMBER_IN,NEWTIME,H_INPUT_IN)-向HIRE表中插入一个记录,同时需要在FILM相对应的影片编号上减少相应的数目 EXEC FILM_SELFDSC F_NUMBER_IN,H_NUMBER_INENDGO(执行HIRE_INSERT(借出)存储过程)DECLARE F_NUMBER_IN CHAR(16), CNUMBER_IN TINYINT, H_ID_IN CHAR(16), H_NUMBER_IN TINYINT, H_INPUT_IN MONEYSELECT F_NUM

18、BER_IN=F-200SELECT CNUMBER_IN=1SELECT H_ID_IN= SELECT H_NUMBER_IN=3SELECT H_INPUT_IN=50EXEC HIRE_INSERT F_NUMBER_IN,CNUMBER_IN,H_ID_IN, H_NUMBER_IN,H_INPUT_INGO(根据出租编号进行修改,只能修改数量和押金,针对的是借出事务)CREATE PROCEDURE HIRE_CHANGE H_ID_IN CHAR(16), H_NUMBER_IN TINYINT, H_INPUT_IN TINYINTASBEGIN UPDATE HIRE SET

19、 H_NUMBER=H_NUMBER_IN,H_INPUT=H_INPUT_IN WHERE H_ID=H_ID_INENDGO(执行HIRE_CHANGE(修改)存储过程)DECLARE H_ID_IN CHAR(16), H_NUMBER_IN TINYINT, H_INPUT_IN TINYINTSELECT H_ID_IN= SELECT H_NUMBER_IN=6SELECT H_INPUT_IN=100EXEC HIRE_CHANGE H_ID_IN,H_NUMBER_IN,H_INPUT_INSELECT * FROM HIRE WHERE H_ID=GO(归还操作,必须使用出租

20、编号归还.使用参数有归还时间.同时在film表中对应的数据应该增加)CREATE PROCEDURE HIRE_RETURN H_ID_IN CHAR(16), H_RVENT_IN DATETIMEASBEGIN DECLARE F_NUMBER CHAR(16),H_NUMBER TINYINT SELECT F_NUMBER=F_NUMBER,H_NUMBER=H_NUMBER FROM HIRE WHERE H_ID=H_ID_IN IF H_NUMBER!=0 DECLARE H_FLAGE INT SET H_FLAGE=1 UPDATE HIRE SET H_FLAGE=H_FL

21、AGE,H_RVENT=H_RVENT_IN WHERE H_ID=H_ID_IN EXEC FILM_SELFADD F_NUMBER,H_NUMBERENDGO(执行HIRE_RETURN(归还)存储过程)DECLARE H_ID_IN CHAR(16), H_RVENT_IN DATETIMESELECT H_ID_IN= SELECT H_RVENT_IN=2012/12/1 19:03:00EXEC HIRE_RETURN H_ID_IN,H_RVENT_INSELECT * FROM HIRE WHERE H_ID= GO(销售操作同上,由于有时间,无法使用函数,则使用存储过程实现

22、)CREATE PROCEDURE SELL_ACTION CNUMBER_IN TINYINT, F_NUMBER_IN CHAR(16), S_NUMBER_IN TINYINTASBEGIN DECLARE S_TIME_IN DATETIME SET S_TIME_IN=(SELECT CONVERT(VARCHAR(100),GETDATE(),120) EXEC FILM_SELFDSC F_NUMBER_IN,S_NUMBER_IN INSERT INTO SELL (CNUMBER,F_NUMBER,S_NUMBER,S_TIME) VALUES(CNUMBER_IN,F_NU

23、MBER_IN,S_NUMBER_IN,S_TIME_IN)ENDGO (执行SELL_ACTION(销售存储过程))DECLARE CNUMBER_IN TINYINT, F_NUMBER_IN CHAR(16), S_NUMBER_IN TINYINTSELECT CNUMBER_IN=3SELECT F_NUMBER_IN=YP517SELECT S_NUMBER_IN=4EXEC SELL_ACTION CNUMBER_IN,F_NUMBER_IN,S_NUMBER_INGO(由影片编号,增加相应编号的数目)CREATE PROCEDURE FILM_SELFADD F_NUMBER_

24、IN CHAR(16), ADDNUMBER TINYINTASBEGIN DECLARE OLD_NUMBER TINYINT SELECT OLD_NUMBER=F_STOCK FROM FILM WHERE F_NUMBER=F_NUMBER_IN SET ADDNUMBER=ADDNUMBER+OLD_NUMBER UPDATE FILM SET F_STOCK=ADDNUMBERENDGO(执行FILM_SELFADD(增加相应影片编号的存储数目)存储过程)DECLARE F_NUMBER_IN CHAR(16), ADDNUMBER TINYINTSELECT F_NUMBER_I

25、N=YP718SELECT ADDNUMBER=2EXEC FILM_SELFADD F_NUMBER_IN,ADDNUMBERGO(由影片编号,减少相应编号的数目)CREATE PROCEDURE FILM_SELFDSC F_NUMBER_IN CHAR(16), ADDNUMBER TINYINTASBEGIN DECLARE OLD_NUMBER TINYINT SELECT OLD_NUMBER=F_STOCK FROM FILM WHERE F_NUMBER=F_NUMBER_IN SET ADDNUMBER=OLD_NUMBER-ADDNUMBER UPDATE FILM SET F_STOCK=ADDNUMBERENDGO(执行FILM_SELFDSC(减少相应影片编号的存储数目)存储过程)DECLARE F_NUMBER_IN CHAR(16), ADDNUMBER TINYINT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论