




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大型数据库实践报告课题:超市商品管理系统学院(系): 软件学院 专 业: 软件工程 学 生: 指导教师: 完成日期 年 月目录第一章 绪论31.1 开发背景31.2 开发意义4第二章 系统分析42.1 系统的需求分析42.2 系统开发设计思想42.3系统开发步骤52.4 系统的主要技术52.4.1 数据库相关技术介绍52.5 系统的运行环境和开发平台52.5.1 硬件设备及操作系统52.5.2 系统开发工具62.5.3 开发工具简介6第三章 系统设计63.1系统流程63.2 系统功能模块的划分73.2.1用户模块73.2.3 产品管理73.2.4供应商管理73.2.5 入库管理83.2.6 出货管理83.2.8 库存查看83.2.9 系统管理83.2.10 系统监控83.3数据库设计83.3.1数据库需求分析83.3.2数据库的逻辑设计93.2.4用户设计103.2.5 数据库表的设计143.2.6 数据表修改183.2.7 视图函数的使用213.2.8 数据备份与管理223.3.9数据库表结构263.3.10表实现相关代码29第四章 系统实现304.1 运行截图304.1.1 登陆界面304.1.2 首页展示314.1.3 添加商品信息314.1.4 查找商品功能324.1.5 修改商品功能324.1.6 删除商品功能324.1.7 查看销售信息334.1.8 修改密码334.1.9 查看用户信息334.1.10 用户购买界面344.1.11 用户退货界面344.2 代码实现344.2.1 myecplise 连接数据库344.2.2其余代码展示36第五章 总结36参考文献36致谢:37第一章 绪论1.1 开发背景随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。计算机的发明应用,被视为人类的第三次重大的科学技术革命,是一次飞跃。过去的革命最高成就就是“用机器制造机器”,是手的延长,而计算机的出现却能做到“用机器控制机器”,是脑的延伸。计算机是提高生产效率的主要工具及途径。随着我国改革开放和经济的快速发展,超市行业也迅速壮大,竞争也越来越激烈。超市商品库在运营过程中会面临大量商品信息的录入,查找,删除,编辑修改等,而人工记录的方法效率低而且错误多,严重影响了商品库的正常管理工作,而这样的情况再不改变,必定要被社会抛弃,在激烈的竞争中走向死亡。因此需要对商品的入库信息,出库信息等进行管理,及时了解各个环节中信息的变更,有利于管理效率的提高。本系统就是针对超市库存管理的缺陷,结合了当前超市的发展状况,旨在提高工作人员的工作效率,使其适应现状发展的需要。在这基础上本系统还考虑到将来对系统的要求而添加了一些灵活可更新的功能。作为计算机应用的一部分,使用计算机对超市库存信息进行管理,拥有着手工管理所无法比拟的优点:1.可以有效地管理各种商品,减少出入库手续,提高运营速度,提高经济效益;2.大大节省了人力,减少财务支出;3.系统设计全面,操作方式也容易掌握,且不容易出错,为超市仓库的正常正确营运提供保障。1.2 开发意义超市商品管理系统能确保物畅其流,促使企业经营活动繁荣兴旺。不论什么企业,都要储备一些物资。以生产为主的企业,不储备一定的物资,不能维持其连续生产;服务性行业,也要备置某些需用的设备和服务用具;就连一般的事业单位,也要备有某些办公用品等。因此,各行各业都存在不同程度的库存管理业务。第二章 系统分析2.1 系统的需求分析 根据各大中小企业关于超市商品工作流程与实际的需求和特色,本系统在数据库方面需满足以下几个要求:1. 提供对商品信息维护的功能2. 提供对数据库的维护功能3. 提供对不同用户登录的管理功能4. 提供对数据库表的维护功能5. 提供对商品查询和相关数据分析功能2.2 系统开发设计思想系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护;系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。2.3系统开发步骤超市商品管理系统的建立与应用可以划分成总体规划、系统开发和系统运行三个阶段,其中系统开发阶段还可进一步分为系统分析、系统设计和系统实施等工作环节。上述各个阶段排列成一个严格的线性开发序列,在每个工作阶段均产生完整的技术文档作为下一阶段工作的指导和依据,每一阶段都应对文档进行评审,确信该阶段工作已完成并达到要求后才能进入下一阶段,同时在以后的工作中不能轻易改变前面经过评审的成果。上述开发方式的主要优点是便于开发工作的组织和管理,并且可大大降低在线学习系统开发的复杂性。国内外许多系统开发的实例都证明这是一种行之有效的开发方式。由于时间的原因在本次设计开发中,本文档只介绍数据库方面的设计与维护等功能,对于前台等页面设计将在后续开发中进行实现。2.4 系统的主要技术2.4.1 数据库相关技术介绍在数据库方面的设计将严格遵照数据库开发步骤,在此运用了大型数据库设计的相关性知识,包括对存储过程,函数,触发器等的使用,还有对数据库全方面的设计,及安全措施等的设计。其次还涉及表分区,用户管理与权限分配,表空间及数据文件,数据库的导入与导出等,还有视图、索引、序列的建立与使用。2.5 系统的运行环境和开发平台2.5.1 硬件设备及操作系统服务器:本地机器华硕电脑,有网络接口,内存12g,硬盘在1T。数据库软件oracle 11g 。操作系统:windows 10企业版客户端:本地机器华硕电脑,有网络接口,内存12g,硬盘在1T。数据库软件oracle 11g。网络:服务器和客户端应有网络连通。配置TCP/IP协议。2.5.2 系统开发工具电脑配置:华硕品牌机CPU: i5-7200U 内存:DDR3 12G 硬盘:1T操作系统:win 10开发环境:oracle11g,myecplise 2017 CI界面工具:PL/SQL数据库:oracle 2.5.3 开发工具简介(1) oracle 11g概述Oracle是一个关系型数据库管理系统,Oracle 11g有400多项功能,经过了1500多个小时的测试,开发工作量达到了3.6万人/月,相当于1000名员工连续研发3年。Oracle 11g提供了高性能、伸展性、可用性和安全性,并能更方便地在低成本服务器和存储设备组成的网格上运行 ,相对过往版本而言,Oracle 11g具有了与众不同的特性,数据库重演,计划管理,自动诊断知识库,事务打包服务,自动内存优化等等。第三章 系统设计3.1系统流程与本系统相关的角色包括:本系统的用户包括四种:一是最高管理员;二是数据管理人员,该类用户可以进行数据表的创建与修改,数据的修改和删除;三是业务组织人员,该类用户可以进行视图的创建,以及函数、存储过程和触发器等对象的创建和管理;第四种是数据访问人员,该类用户人数比较多,但是只能进行特定的数据表或者视图的查询操作。3.2 系统功能模块的划分软件所实现的功能强弱是衡量一个软件的最根本的标准。经过对系统的需求分析和实际应用需求,确定了本子系统的功能模块如图3.2所示:图3.2 系统功能模块图3.2.1用户模块用户包括为用户分配账号,修改密码,用户安全退出功能。此模块只能由系统管理员统一配置,用户不能自行注册,用户密码要进行加密处理。3.2.3 产品管理对需要入库的产品进行增删改查操作。3.2.4供应商管理对供应商进行增删改查操作3.2.5 入库管理先由最高管理人员对数据管理人员进行授权,然后该类用户对商品信息进行入库操作,即对商品信息表进行修改,或增加数据,或删除数据,可以建立表或删除表。3.2.6 出货管理此操作由数据管理人员进行操作,包括对商品信息进行出库操作,即对商品出库信息表进行修改,或增加数据,或删除数据,可以建立表或删除表。3.2.8 库存查看可以查看产品的库存状况,库存数量。 3.2.9 系统管理进行用户角色权限分配,使不同的角色拥有不同的权限从而有效的使用系统进行 工作。3.2.10 系统监控记录登陆用户的登陆时间、推出时间及在系统内进行的所有操作。3.3数据库设计3.3.1数据库需求分析数据库的设计在一个系统中的作用十分重要,数据库建立的是否完善直接影响到你系统的实现。数据库的设计既要满足用户的需求又要尽最大可能的降低数据的冗余,尽可能降低数据间的依赖,将他们分离。在各种信息的提供,保存,更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入,收集基本数据,数据结构,以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础3.3.2数据库的逻辑设计逻辑结构设计的原则如下:(1)尽可能的减少数据冗余和重复。(2)结构设计与操作设计相结合。(3)数据结构具有相对的稳定性。其实数据库还有要求如下:为了方便数据文件的扩展和迁移,本项目实施要求使用独立的数据文件,请给出具体的实施方案和关键代码。其中,数据文件放在服务器的E盘,文件名称为“自己的姓名.dbf”,文件初始大小为50M,本地化管理,自动扩展。完整代码如下(使用system账户进行创建表空间和数据文件)1. CreatetablespacebigshuaidatafileE:oracle.dbf2. Size 50Mreuse3. Extentmanagementlocalautoallocate;3.2.4用户设计本系统的用户包括四种:一是最高管理员;二是数据管理人员,该类用户可以进行数据表的创建与修改,数据的修改和删除;三是业务组织人员,该类用户可以进行视图的创建,以及函数、存储过程和触发器等对象的创建和管理;第四种是数据访问人员,该类用户人数比较多,但是只能进行特定的数据表或者视图的查询操作。请使用最高管理员执行以下操作:1) 实现问题(1)中的数据库设计;2) 给出区分其他三种用户的实施方案和关键代码;问题1,已经在上一小题实现,在此不在列出。问题2的实施方案如下:最高管理员在此使用system用户,创建一个用户登录表userLogin,表中有四个属性,分别是用户编号Loginid,登陆名LoginName,密码pwdd,权限值authority,权限值可取0,1,2(0代表数据管理员标识,1代表业务组织人员标识,2代表数据访问人员标识)。并编写存储过程对用户登陆数据库时进行身份判断,并返回相应的权限值。其次并规定,登陆时候要判断用户名是否存在,不存在返回-2;判断密码是否正确,如果密码不正确返回-1;用户名和权限值作为主键,并创建序列作为登陆id.1. 创建用户登录表:1. createtableuserLogin(2. Loginidnumber(3)notnull,-登陆编号3. Loginnamevarchar2(10)notnull,-登陆姓名4. pwdvarchar2(16)notnull,-登陆密码5. authoritynumber(1)check(authorityin(0,1,2),-权限值6. primarykey(Loginname,authority)7. );2.创建序列:1. Createsequenceseq_loginid2. Minvalue13. Maxvalue9994. Startwith15. Incrementby16. Nocycle;3.插入数据:1. insertintouserLoginvalues(seq_loginid.nextval,aaa,123456,0);2. insertintouserLoginvalues(seq_loginid.nextval,bbb,123456,1);3. insertintouserLoginvalues(seq_loginid.nextval,ccc,123456,2);4.登陆存储过程的实现:1. createorreplaceprocedureuserLoginCheck-对登陆用户的审查2. (unamevarchar2,passwdvarchar2,authorityoutnumber)3. As4. v_countnumber;5. begin6. selectcount(*)intov_countfromuserLoginwhereLoginname=uname;7. ifv_count=0then8. authority:=-2;-2用户名不存在9. else10. selectcount(*)intov_countfromuserLoginwhereLoginname=unameandpwd=passwd;11. ifv_count=0then12. authority:=-1;-1密码不正确13. else14. selectauthorityintoauthorityfromuserLoginwhereLoginname=unameandpwd=passwd;15. endif;16. endif;17. end;5.调用存储过程,对登陆功能进行验证:1. declare2. v_authoritynumber;3. begin4. userLoginCheck(aaa,123456,v_authority);5. dbms_output.put_line(v_authority);6. end;7.8.3)创建一个数据管理人员账户,账户名为“自己的姓名”,密码为自己的学号。并且设置密码生命周期为30天,允许输入错误的密码不得超过5次,超过5次密码锁1天:1. Createuseridentifiedby1515925661-创建账户2. Defaulttablespacebigshuai;-并额外设置默认表空间为bigshuai3. 4. Createprofilepassword_life_time5. Password_life_time306. Password_grace_time3;-另加密码宽限时间三天7. 8. Createprofilelock_accountlimit9. Failed_login_attempts5-错误密码不可超过三次10. Password_lock_time1;3.2.5 数据库表的设计以上述账户连入数据库,使用适当的命令显示当前用户身份信息,请给出截图。使用该账户执行一下操作:1)创建表“商品信息”,该表至少包含一个商品编号列,一个商品名称列,商品类型列,一个单价列;将商品编号列和商品名称列设置为联合主键。2)创建表“零售信息”,该表至少包含一个销售编号列,一个商品编号列,一个商品名称列,一个销售数量列和一个销售金额列。将销售编号和商品编号设置为联合主键(一次销售的所有商品对应一个销售编号),商品编号和商品名称为外键。在其他列上设置非空约束。3)“零售信息”表中的数据默认按照编号和销售时间进行排序,并且按照销售时间一个季度划分一个分区。同时,数据分布要求符合问题(1)中的方案。具体实现方案如下: 准备:在使用该用户连接数据库前应对该用户进行授予相应的权限,使用system账户进行授予连接数据库权限session,表的相关权限create any table等,授权方式也可对用户授予已经存在的某些角色的权限例如connect,resource权限等,为了严格按照实验要求,故使用如下命令:1. grantcreatesessionto;2. grantcreatetable,dropanytable,alteranytableto;3. grantunlimitedtablespaceto;当前用户的一些信息:a) 查看当前的登陆的用户名:Select*fromdual;(showuser;)b) 查看当前用户的一些信息:Select*fromuser_users;c) 查看当前用户拥有的角色和权限:d) Select*fromuser_role_privs;e) Select*fromsessions_privs;1.创建商品信息表:1. Createtableproduct2. (proidnumber(10)unique,-商品编号列3. Pronamevarchar2(20)unique,-商品名4. Protypevarchar2(20),-类型5. Propricenumber(10),-价格6. Primarykey(proid,proname);2.创建零售信息表,并且按照销售时间一个季度划分一个分区,使用bigshuai表空间:(在验收发现:表的分区应该全面考虑,分区的时间最好是按照月份和日期,这样就可以把整个数据表进行整体分区,而不是单单的一年)1. CreatetableproductOut(-销售信息表2. Outidnumber(10)notnull,-销售编号3. Outnumnumber(10)notnull,-销售数量4. Outmoneynumber(10)notnull,-销售金额5. Outdatedatenotnull,-销售日期6. Primarykey(outid,proid),-联合逐渐7. Proidnumber(10)referencesproduct(proid),-外键8. Pronamevarchar2(20)referencesproduct(proname)9. )10. Partitionbyrange(outdate)-按照销售时间每个季节划分一个表分区,共四个分区11. (12. Partitionpar_01valueslessthan(to_date(2017-04-01,yyyy-mm-dd)tablespacebigshuai,13. Partitionpar_02valueslessthan(to_date(2017-07-01,yyyy-mm-dd)tablespacebigshuai,14. Partitionpar_03valueslessthan(to_date(2017-10-01,yyyy-mm-dd)tablespacebigshuai,15. Partitionpar_04valueslessthan(to_date(2018-01-01,yyyy-mm-dd)tablespacebigshuai16. )3.像两个表中录入数据,并将表中数据按照编号和销售时间进行排序:录入数据:1. -商品信息表2. insertintoproductvalues(1,三星手机,电子类,1000);3. insertintoproductvalues(2,苹果,水果类,3);4. insertintoproductvalues(3,篮球,体育类,70);5. insertintoproductvalues(4,泡面,食品类,70);6. insertintoproductvalues(5,裙子,服装类,70);7. 8. -销售信息表9. insertintoproductoutvalues(1,5,350,to_date(2017-02-05,yyyy-mm-dd),3,篮球);10. insertintoproductoutvalues(2,3,210,to_date(2017-04-05,yyyy-mm-dd),5,裙子);11. insertintoproductoutvalues(2,2,140,to_date(2017-04-14,yyyy-mm-dd),4,泡面);12. insertintoproductoutvalues(3,2,2000,to_date(2017-05-14,yyyy-mm-dd),1,三星手机);13. insertintoproductoutvalues(3,5,350,to_date(2017-05-14,yyyy-mm-dd),5,裙子);14. insertintoproductoutvalues(3,5,350,to_date(2017-06-14,yyyy-mm-dd),3,篮球);15. insertintoproductoutvalues(1,1,1000,to_date(2017-02-14,yyyy-mm-dd),1,三星手机);3对表中数据录入完成后,数据默认是按照销售编号进行升序,销售时间升序排列。再次如果表中数据没有按照.对于零售信息没有按照编号和销售时间进行排序,下面介绍两种方法可以实现数据的排序;a在建立一张新表,命令如下:1. Createtableproductout2asselect*fromproductoutorderbyoutidasc,outdateasc;b. 使用视图的方式进行表中的数据进行排序,视图可以保证原有数据的顺序不被打乱。(此方法虽好,但无创建视图的权限,命令不可执行)1. Createorreplaceviewproducteout_viewas2. Selectoutid,outdate,outmoneyfromproductoutorderbyoutid,outdate;3.2.6 数据表修改本系统在投入使用之后发现,由于“零售信息”表中没有存储商品单价,每次计算商品销售金额都要进行连接查询操作,效率太低,请对数据库做如下修改:1) 为“零售信息”表添加商品单价列;执行命令如下:1. Altertableproductoutadd(outpricenumber(10);2) 编写一个存储过程,将“商品信息”表中的商品单价写入“零售信息”表的单价列;在本题中由(3)可知,赋予用户业务组织人员的权限。使用最高管理员system授权语句如下所示:1. grantcreateview,createanyprocedure,createanytriggerto黄国峰;将商品信息表数据写入零售信息表中方法有多种可以使用循环,游标等,在不考虑执行效率的前提下,为了方便在此我使用merge命令如下:1. Createorreplaceprocedurewrite_outpriceas2. begin-merge可以对一个表同时执行inserts和updates操作,在此仅执行update3. mergeintoproductoutopusingproductpon(id=id)-使用merge命令4. whenmatchedthen5. updatesetop.outprice=price;6. end;以下为执行该存储过程后,零售信息表中的单价信息已经成功更改:3) 由于修改表和数据的权限与创建存储过程的权限不属于同一个用户,给我们的操作带来了麻烦,请将业务组织人员(角色或用户)的权限并入数据管理人员,然后再执行上述两步操作;最后,删除业务组织人员(角色或用户)。实施方案如下:在(2)中已经完成对用户授予业务组织人员的权限,从userLogin表中删除业务组织人员,由于用户没有删除用户权限,在此使用最高管理员system身份进行删除,命令如下:1. deletefromuserloginwhereauthority=1;补充说明:因为我没有实体化业务组织人员,如果已经创建了该用户,或者创建了改角色,可以使用如下命令进行删除:1. Dropuserusernamne;-删除用户2. Droprolerolename;-删除角色3.2.7 视图函数的使用由于“零售信息”表中只存储了每种商品的销售金额,没有存储销售总额,每次显示销售总额还要进行一次计算。而将销售总额加进表中的话,重复信息又太多。请执行如下操作解决该问题:1) 创建一个视图,该视图中只保存销售编号和销售总额。2) 创建一个函数,实现输入销售编号显示该次销售的总额。实施方案如下:1. (1). Createviewproductout_info_view(outid,outmoney)2. Asselectoutid,sum(outmoney)fromproductoutgroupbyoutid;(2).创建函数:1. Createorreplacefunctionget_out_sum(product_outidproductout.outid%type)-此处不可用number(10)替换2. returnproductout.outid%typeis3. outsumproductout.outid%type;4. Begin5. Selectsum(outmoney)intooutsumfromproductoutwhereoutid=product_outid;-注意where语句,此处不能用groupby6. Returnoutsum;7. End;调用函数进行测试:1. declare-调用函数,计算销售编号为2的销售总金额2. m_outsumnumber(10);3. begin4. m_outsum:=get_out_sum(2);5. dbms_output.put_line(编号为2的总金额是:|m_outsum);6. end;3.2.8 数据备份与管理系统运行了一段时间之后,随着数据量增多,服务器负载变大,查询效率变低。超市决定将历史数据备份,新数据写入新表,请执行以下操作:1) 将2017年以前的数据导出到F盘BAK文件夹;2) 将2017年以后的零售信息存入新的表“2017年销售情况”;请给出数据转存的方案和关键代码。执行了上述操作之后发现,现有的超市前台系统仍然将数据写入旧的“零售信息”表,请使用触发器实现“2017年销售情况”表中数据的同步更新。实施方案如下:(1).在此题中我只进行逻辑备份即备份超市数据表,对于备份即导出其他模式中的表,或者导出全部数据库和导出模式都需要dba或者exp_full_database角色权限。导出18年以前的数据表(因为在录入数据时只录入了17年的数据信息)。a).首先使用SYS用户(必须sys用户)创建目录对象WANGSHUAI,并将该目录的使用权限赋予用户,然后要在F盘建立BAK文件夹命令如下:1. CREATEDIRECTORYWANGSHUAIASF:BAK;2. GRANTREAD,WRITEONDIRECTORYWANGSHUAITO;b).使用如下命令导出数据文件:1. expdp/1515925661directory=WANGSHUAIDUMPFILE=WS.DMPTABLES=PRODUCTOUT,PRODUCTQUERY=WHEREOUTDATEto_date(2017-01-01,yyyy-mm-dd);(3).使用触发器更新表字段,触发器实现如下,录入数据并检验触发器:在此应该注意到问题是:题目中确指出是2017年后数据,所以在触发器执行前应进行判断。加上6,7,8行后代码。(此处bug在验收后发现)1. -插入数据变更触发器2. Createorreplacetriggertrg_insert_out3. afterinsertonproductout4. Foreachrow5. Begin6. -if outdate to_date(2016-12-31,yyyy-mm-dd)7. then 8. Insertinto2017年销售情况(outid,outnum,outmoney,outdate,proid,proname,outprice)9. Values(:new.outid,:new.outnum,:new.outmoney,:new.outdate,:id,:name,:new.outprice);10. -End if;11. End;12. 插入数据:另外并设有两表同步更新触发器,在这就不在进行运行截图了。1. -数据更新触发器2. Createorreplacetriggertrg_update_out3. afterupdateonproductout4. Foreachrow5. Begin6. Update2017年销售情况7. setoutid=:new.outid,outmoney=:new.outmoney,outdate=:new.outdate,outprice=:new.outpricewhereproid=:idandoutid=:new.outid;8. End;9. 3.3.9数据库表结构数据库表中其余相关表的设计结构如下所示:字段类型长度主键是否空说明IdVarchar236YN管理员编号userNameVarchar210NN用户名PasswordVarchar2100NN密码RealnameVarchar250NY真实姓名StatusNumber6NY状态BrowserVachar220NY浏览器SignatureBlobNY标志附件UserkeyVarchar2200NY秘钥码DepartidVarchar232NY所属部门表1 管理员信息表(T_S_BASE_USER)表2 供应商表(T_B_SUPPLIER)字段类型长度主键是否空说明IdVarchar236YN供应商编号SupplierNameVarchar220NY供应商名称SupplierAddrVarchar226NY供应商地址SupplierTelVarchar215NY供应商电话SupplierEmailVarchar220NY供应商EmailSupplierNumVarchar220NY企业注册号ContactPersonVarchar210NY联系人PersonTelVarchar215NY联系人电话表3 货品表(T_B_GOODS)字段类型长度主键是否空说明IdVarchar236YN货品编号GoodsNameVarchar216NY货品名称GoodsTypeVarchar22NY货品类型CostPricenumber10NY成本价RemarkVarchar2100NY备注表4 库存表(T_B_STOCK)字段类型长度主键是否空说明IdVarchar236YN库存编号GoodsIdVarchar236NY货品编号TotalCountVarchar210NY数量表5 入库单表(T_B_PURCHASE)字段类型长度主键是否空说明IdVarchar236Y N入库编号GoodsIdVarchar236NY货品编号GoodsNameVarchar220NY货品名称GoodsNumberVarchar220NY货品批号GoodsCountVarchar210NY数量Pricenumber10NY单价StatusChar1NY状态SupplierIdVarchar236NY供应商编号SupplierNameVarchar220NY供应商名称ContactPersonVarchar210NY联系人PersonTelVarchar215NY联系人电话RemarkVarchar2100NY备注表6 出库单表(T_B_SHIP)字段类型长度主键是否空说明IdVarchar236Y N出库编号GoodsIdVarchar236NY货品编号GoodsNameVarchar220NY货品名称GoodsCountVarchar210NY数量StatusChar21NY状态BranchIdVarchar236NY分部编号BranchNameVarchar220NY分部名称ShipDatedate10NY出库日期RemarkVarchar2100NY备注表7 角色表(T_S_ROLE)字段类型长度主键是否空说明IdVarchar236YN角色编号RolecodeVarchar210NY角色码RolenameVarchar2100NY角色名称表8 用户角色表(T_S_ROLE_USER)字段类型长度主键是否空说明IdVarchar236YN用户角色编号RoleidVarchar236NY角色编号useridVarchar236NY用户编号表9 用户功能表(T_S_ROLE_FUNCTION)字段类型长度主键是否空说明IdVarchar236YN用户功能编号operationVarcahr2100NY操作roleidVarchar236NY角色编号3.3.10表实现相关代码在此只显示部分代码1. CREATETABLEt_b_goods(-货品表2. idvarchar(36)NOTNULL,3. goodsnamevarchar(16)DEFAULTNULL,-货品名称,4. goodstypevarchar(2)DEFAULTNULL-货品类型,5. ostpricedoubleDEFAULT0-成本价,6. remarkvarchar(100)DEFAULTnull-备注,7. PRIMARYKEY(id)8. );9. 10. CREATETABLEt_b_purchase(-入库单表11. idvarchar(36)NOTNULL,12. goodsidvarchar(36)DEFAULTNULL-货品编号,13. goodsnumbervarchar(20)DEFAULTNULL-货品批号,14. goodscountvarchar(10)DEFAULTNULL-数量,15. pricedoubleDEFAULT0-单价,16. statusvarchar(1)DEFAULTNULL-状态,17. suppliernamevarchar(20)DEFAULTNULL-供应商名称,18. contactpersonvarchar(10)DEFAULTNULL-联系人,19. persontelvarchar(15)DEFAULTNULL-联系人电话,20. supplieridvarchar(36)DEFAULTNULL-供应商编号,21. goodsnamevarchar(20)DEFAULTNULL-货品名称,22. remarkvarchar(100)DEFAULTNULL-备注,23. PRIMARYKEY(id)24. );25. 26. CREATETABLEt_b_ship(-出库单表27. idvarchar(36)NOTNULL,28. goodsidvarchar(36)DEFAULTNULL-货品编号,29. goodsnamevarchar(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 认知言语障碍康复护理知识
- 中职语文部编高教版(2023)基础模块 上册第三单元二 种树郭橐驼传教案
- 高中语文课内古诗文(新教材统编版)《念奴娇·过洞庭》《牡丹亭·游园·皂罗袍》知识点+专项练习(原卷版)
- 产品运输代理合同书
- 2024年中考数学真题分类汇编(全国):专题27 方程及函数的实际问题(17题)(学生版)
- 汽车配件采购合同范本简单
- 离职后重新聘用人员合同
- 小学数学北师大版四年级下册六 数据的表示和分析栽蒜苗(一)教学设计及反思
- 二手房交易委托协议
- 护理培训总结报告
- 2025年第三届天扬杯建筑业财税知识竞赛题库附答案(701-800题)
- 真理诞生于一百个问号之后(优秀)(课堂PPT)
- 污水处理厂防汛应急演练方案
- 2020最新八年级下册《道德与法治》知识点总结(最全版)
- 慢性阻塞性肺疾病(COPD)的药物治疗
- 数学教师实习日记16篇
- 家装施工验收手册(共13页)
- 《责任胜于能力》PPT课件.ppt
- 先后天八卦与风水罗盘131712904
- 英文形式发票样本
- 服装质量检验表最新
评论
0/150
提交评论