《数据库实用技术》课程设计项目名称:仓库管理系统课程名称:数据库实用技术专业班级:信息与计算科学110班姓名:曾黎任课教师:陈云新一、系统定义随着各个公司经营的范围慢慢扩大,业务流量比较大,需要处理的数据比较多,为了能对公司的业务进行有效的管理,减少手工操作的繁琐,同时可以根据公司业务的运营情况,分析出公司发展的潜在信息,顺应时代的发展变化,使管理更加简单化。二、需求分析1、最终仓库管理系统功能如下:(1)资料管理功能人员信息:用于登记公司的员工信息资料、客户信息资料、和供应商信息资料,对员工信息资料支持员工信息的录入、修改和删除。最高权限的管理员能录入和删除工作人员,普通权限的工作人员只能修改自己的密码产品信息:支持产品信息的录入、修改和删除,可以对各个产品进行查询。(2)业务管理功能进出仓库明细:用于查看进货明细、进货退货、销售明细、销售退货、实现录入、修改和删除。退货时,需要指定相应的退货单,可以查询进出仓库明细。盘库:通过人工清点当前库存物品,与理论上仓库内物品数量对比,分析盘盈、盘亏问题(3)统计分析功能物品分析:用于对物品进行分析,主要是销售分析,包括对利润、进货、退货、库存等进行分析,可以通过报表显示。人员分析:由于需求加大,需要各种职务的工作人员,分析职务需求,可供人才参考利润分析:对产品销售的利润进行分析,可以看出货物的供求关系2、给出系统的逻辑模型:数据流程图、数据字典数据流图例子(可根据需要用多层数据流图表示):采购货物数据流图:数据字典:数据项:仓库:{仓库编号,仓库名,仓库类型,管理员,员工编号};供应商:{供应商编号,姓名,联系方式,地址};供应商供应的货物存入仓库数据结构:供应商提供货物,存入相应的仓库数据流:需求的货物进入相应的仓库数据存储:产品描述,应付款处理过程:需求货物-送订单号-订单处理-付款-货物入库管理数据流图:数据字典:数据项:员工:{员工编号,姓名,登录密码,性别,生日,联系方式,职称,家庭住址};货物:{货物编号,名称,类型,数量,单位,进价,售价,订单号};管理员管理仓库和资料库数据结构:管理员进行相关的操作,显示相应的信息,或存储相应的物品、资料数据流:操作信息,操作数据,相关信息表数据存储:查询时将数据信息显示出来,入出库数据进行存储处理等等处理过程:管理员操作-获得操作信息-实行相应的处理三、系统设计1、概念结构设计画出系统E-R图。2、逻辑结构设计将E-R图(或其他概念设计图)转换为具体的DBMS对应的关系模式。员工:{员工编号,姓名,登录密码,性别,生日,联系方式,职称,家庭住址};货物:{货物编号,名称,类型,单位,进价,售价};仓库:{仓库编号,仓库名,仓库类型,员工编号};供应商:{供应商编号,姓名,联系方式,地址};客户:{客户编号,货物编号,姓名,联系方式,地址,订单号};库存:{仓库编号,货物编号,数量}进仓:{入单号,进仓时间,入库数量,所付金额}出仓:{出单号,出仓时间,出库数量,所付金额}盘库:{盘库号,盘库时间,盘库数量}数据库设计:员工表序号字段名称数据类型大小可否为空主键说明1staff_no可变字符10否是员工编号2staff_password可变字符10否否登录密码3staff_name可变字符10否否员工姓名4staff_sex字符2否否性别5staff_birthday日期可否出生日期6staff_phone字符15否否联系方式7staff_rank字符10否否职称8staff_family_address可变字符50可否家庭住址仓库表序号字段名称数据类型大小可否为空主键说明1cangku_no可变字符10否是仓库编号2cangku_name可变字符10否否仓库名3cangku_type可变字符10否否仓库类型4staff_no可变字符10否否员工编号货物表序号字段名称数据类型大小可否为空主键说明1material_no可变字符10否是货物编号2material_name可变字符10否否货物名3material_type可变字符10否否货物类型4material_in_price可变字符10否否进价5material_out_price可变字符10否否出价6material_unit字符4否否单位供应商表序号字段名称数据类型大小可否为空主键说明1supplier_no可变字符10否是供应商编号2material_no可变字符10否是货物编号3supplier_name可变字符10否否供应商姓名4supplier_phone字符15否否联系方式5supplier_address可变字符50可否住址客户表序号字段名称数据类型大小可否为空主键说明1kehu_no可变字符10否是客户编号2kehu_name可变字符10否否客户姓名3kehu_password可变字符10否否登录密码4kehu_phone字符15否否联系方式5kehu_address可变字符50可否住址进仓表序号字段名称数据类型大小可否为空主键说明1rudan_no整形否否入单号2supplier_no可变字符10否否供应商编号3material_no可变字符10否否货物编号4in_data日期否否进仓时间5ru_qty长整形否否进仓数量6supp_pay长整形否否所付金额7staff_no员工编号10否否员工编号出仓表序号字段名称数据类型大小可否为空主键说明1chudan_no整形否否出单号2kehu_no可变字符10否否客户编号3material_no可变字符10否否货物编号4out_data日期否否出仓时间5chu_qty长整形否否出仓数量6kehu_pay长整形否否所付金额7staff_no员工编号10否否员工编号库存表序号字段名称数据类型大小可否为空主键说明1cangku_no可变字符10否是仓库号2material_no可变字符10否是货物编号3qty长整形否否数量盘库表序号字段名称数据类型大小可否为空主键说明1panku_no可变字符10否否盘库号2staff_no可变字符10否否员工编号3panku_date日期否否盘库日期4material_no可变字符10否否货物编号5panku_qty长整形否否盘库数量3、系统功能模块图画出系统功能模块图,并对子模块功能进行详细说明。四、详细设计主要的SQL语句--数据库的建立CREATEDATABASEckglONPRIMARY(NAME='ckgl_data',FILENAME='D:\心语\ckgl_data.mdf',SIZE=3,FILEGROWTH=15%)LOGON(NAME='ckgl_log',FILENAME='D:\心语\ckgl_log.ldf',SIZE=1,MAXSIZE=100,FILEGROWTH=1)GO--员工表createtablestaff(staff_novarchar(10)primarykeyNOTNULL,staff_passwordvarchar(10)NOTNULL,staff_namevarchar(10)NOTNULL,staff_sexchar(2)NOTNULL,staff_birthdaydatetimeNOTNULL,staff_phonechar(15)NOTNULL,staff_rankchar(10)NOTNULL,staff_family_addressvarchar(50)NOTNULL,)GO--货物表createtablematerial(material_novarchar(10)primarykeyNOTNULL,material_namevarchar(10)NOTNULL,material_typevarchar(10)NOTNULL,material_in_pricevarchar(10)NOTNULL,material_out_pricevarchar(10)NOTNULL,material_unitchar(4)NOTNULL,)GO--仓库表createtablecangku(cangku_novarchar(10)primarykeyNOTNULL,cangku_namevarchar(10)NOTNULL,cangku_typevarchar(10)NOTNULL,staff_novarchar(10)NOTNULL,foreignkey(staff_no)referencesstaff(staff_no),)Go--库存表createtablecunhuo(cangku_novarchar(10),material_novarchar(10),qtybigint,primarykey(cangku_no,material_no),foreignkey(cangku_no)referencescangku(cangku_no),foreignkey(material_no)referencesmaterial(material_no),)GO--供应商表createtablesupplier(supplier_novarchar(10),material_novarchar(10),supplier_namevarchar(10)NOTNULL,supplier_phonechar(15)NOTNULL,supplier_addressvarchar(50)NOTNULL,primarykey(supplier_no,material_no),foreignkey(material_no)referencesmaterial(material_no),)GO--进仓表createtablematerial_in(rudan_nointNOTNULL,supplier_novarchar(10)NOTNULL,material_novarchar(10)NOTNULL,in_datadatetimeNOTNULL,ru_qtybigintNOTNULL,supp_paybigintNOTNULL,staff_novarchar(10)NOTNULL,foreignkey(supplier_no,material_no)referencessupplier(supplier_no,material_no),foreignkey(staff_no)referencesstaff(staff_no),)GO--客户表createtablekehu(kehu_novarchar(10)primarykeyNOTNULL,kehu_namevarchar(10)NOTNULL,kehu_passwordvarchar(10)NULL,kehu_phonechar(15)NULL,kehu_addressvarchar(50),)GO--出仓表createtablematerial_out(chudan_nointNOTNULL,kehu_novarchar(10)NOTNULL,material_novarchar(10)NOTNULL,out_datadatetimeNOTNULL,chu_qtybigintNOTNULL,kehu_paybigintNOTNULL,staff_novarchar(10)NOTNULL,foreignkey(kehu_no)referenceskehu(kehu_no),foreignkey(material_no)referencesmaterial(material_no),foreignkey(staff_no)referencesstaff(staff_no),)GO--盘库表createtablepanku(panku_novarchar(10)NOTNULL,staff_novarchar(10)NOTNULL,panku_datedatetime,material_novarchar(10)NOTNULL,panku_qtybigint,foreignkey(