建筑设备进销存管理系统毕业论文.doc
目 录摘要1ABSTRACT2前 言3第1章 绪论51.1课题的提出51.2课题的内容51.3课题的目标51.4课题的意义6第2章 技术背景72.1 ADO.NET概述72.2 SQL SERVER概述82.3 C#概述8第3章 进销存系统的设计93.1 需求分析93.1.1 用户需求93.1.2 系统任务93.2 系统模块分析93.2.1 基本信息管理103.2.2 进货管理113.2.3 销售管理123.2.4 库存管理133.2.5 应付款管理143.2.6 应收款管理143.2.7 系统管理143.3 系统详细设计153.3.1 库存系统设计153.3.2 权限管理设计183.3.3 数据库表设计22第4章 进销存系统的实现314.1 数据库连接过程314.2 功能模块的实现324.2.1 基本资料管理324.2.2 权限管理364.2.3 库存管理38第5章 总结与展望41参考文献42致 谢43摘要商业企业最主要的任务是进行商品进销存管理,由于商品种类繁多且数据量大,传统手工操作任务繁重、工作效率低下,不能适应现代化信息社会发展的需要。为了能更好的管理建筑设备的进货,销售,库存情况,以及他和其他企业之间的往来对帐,建筑设备供应商尤其需要开发一套建筑设备进销存管理系统。本文就如何开发建筑设备进销存系统进行了详细的分析和设计。文章按照要求首先分析了开发这个进销存管理系统的意义;其次,对系统进行了总体需求分析,设计了数据结构,划分了系统模块,对模块进行具体分析,其中重点介绍了如何实施库存的上下限管理,库存的查询,权限的管理和一些基本信息管理的设计与实现;之后,用C#.NET开发工具和SQL Server具体实现了这些模块;最后,对本次毕业设计做了总结和展望。该系统不仅能够使操作自动化和信息电子化,提高仓库的管理水平,而且还能够提高工作人员的工作效率,避免了以往入出库流程烦琐、杂乱、周期长的弊端。关键词:进销存 , 建筑设备,信息化作者:指导老师:ABSTRACTThe most important duty in commercial department is purchase-sell-stock management system.Because there are many kinds of goods and many data, traditionmanual operation duty is arduous,the working efficiency is low.So it cann't meet the modernization information society. In order to have a better managment of the purchasing,selling,stocking of building equipments,as well as the current account with other enterprises,the construction equipment suppliers especially need a purchase-sell-stock management system.The thesis take detailed analysis of how to develop a purchase-sell-stock management system of building equipments.Firstly, the thesis analyses the significance of the system .Secondly, the requirement and data structure of the system are analyzed and the modules as well as their relationship are introduced. The thesis focuses on the system stock situation, stock on lower limit management, stockinquiry, jurisdiction management and some basic information managementdesigns and realization.Thirdly, the idea and scheme are illustrated by code. Its implemented with C#.NET and SQL Server database.Finally, the whole project is summarized.This system is not only cause the operation automation but also do with the information by electronic means, enhances the management level of the warehouse.Moreover can enhance staff's working efficiency, avoided formerlyentering saved the flow troublesomely, is disorderly, the cyclicallong malpractice.Keywords: purchase-sell-stock ,building equipment, informatization Written bySupervised by 前 言进销存管理是市场必不可少的一个重要内容,随着时代的进步,企业也逐渐变的庞大起来。如何管理好进销存的相关信息,已经成为企业成长中的一个大问题。在这种情况下,一个可以规范化,自动化的进销存管理系统就显得非常必要。最初的进销存管理,都是靠人力来完成的。最初,信息量比较小的时候,人力可以完成,随着相关信息量的与日俱增,企业的员工人数也必将增加,伴随着员工人数的增加,各种问题接踵而至,如相关信息的查询,管理等就变得相当的繁琐。如果维持着人力去管理相关的信息,必然会造成工作效率低,工作错误增高的问题。进销存管理系统就是把分散各种信息实行统一,集中,规范的收集管理,建立分类编号管理,电脑存储查询等现代化,专业化的管理系统,不但减轻了员工的工作压力,同时还提高了效率。进销存管理系统为客户提供信息录入,信息检索,信息存取等服务。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机进销存信息进行管理,有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高员工的工作效率,同时在无形之中提高了客户的满意度,为企业建立客户群有着不可磨灭的作用。开发这个系统的目的就是帮助建筑设备供应商提高工作效率实现信息管理的系统化,规范化和自动化。系统最终实现的主要功能如下:u 采购管理包括进货单的登记,查询,删除等u 销售管理包括销售单的登记,查询,删除等u 库存管理包括库存的查询,上下限报警,库存的盘点等u 系统管理包括用户的权限设定,管理员用户的添加,删除等u 财务管理包括和往来单位的往来帐管理等u 基本信息管理包括对商品基本资料,往来单位的基本资料以及公司职员的基本资料的一些维护等库存管理系统的关键问题:u 进销存系统的需求分析u 进销存系统的数据库分析与实现设计u 进销存系统的具体实现u 总结部分介绍了设计和编程体会,并指出了系统设计中的不足和改进的方向u 数据库管理部分:主要完成数据库的管理与维护第1章 绪论1.1课题的提出时间行进到21世纪,以计算机技术为主体的高新技术群体已经将触角深入到经济的方方面面。在市场经济的大环境下,越来越多的人士逐渐认识到用计算机技术进行各类管理,交流的便捷。如何利用先进的管理手段,提高对相关信息的管理水平,是每一企业面临的重要课题。因此,某建筑设备供应商要求我们开发一套建筑设备进销存管理系统,以便他更好的管理建筑设备的进货,销售,库存情况,以及他和其他企业的往来对帐。1.2课题的内容本课题的内容一方面:是在现有的进销存管理软件的基础上吸收继承它们中的优点;另一方面:是对本企业的需求进行认真的分析,最终设计出适合本单位的一套销售管理软件。 首先确定我们应该是基于C/S结构的系统。因为基于C/ S结构的系统交互性强,往往具有专用的前端、能处理大量的、实时的数据流,响应速度快 本系统由我和我们班另一位同学一起完成,经过任务的分配和总结,本人在这一课题中需要实现的任务是:u 根据客户的要求做好系统的需求分析u 建立数据库表u 库存的上下限管理、库存的查询、权限的管理和一些基本信息管理的实现另一位同学负责该系统的往来对帐,应收应付款,进货销售的管理。1.3课题的目标本课题的开发的目标主要包括以下方面:u 界面友好,功能齐全:统一的风格,按功能生成不同的界面,便于管理员和普通用户的操作。u 提供灵活、实用的管理方式u 切实有效的减轻各个用户的负担,基于C/S技术的系统,降低了系统的通讯开销。1.4课题的意义实现本系统,有如下意义:首先,通过实现本系统使该企业早先的手工操作管理,提升为计算机管理,大大的节约了人力物力资源。实现电子化的管理,让人力资源管理人员从繁重琐碎的案头工作解脱出来,完成更重要的工作。进销存管理系统就是为了解决和减轻繁琐的手工管理,使该企业可以上升到一个完善的电子化,信息化管理。其次,开发这个软件不但是一个程序设计过程,对本人来说更是一个综合的检查。在这次软件设计与实现中,对本人的专业知识进行了一个全面考验和检查。程序设计、软件工程、数据结构等课程知识都在程序得到体现,在检查的同时巩固了所学知识。开发这个软件也锻炼了本人的思维能力。第2章 技术背景本系统的开发使用的了Visual studio.NET和SQL Server作为相关工具。C#作为开发语言。在开发过程中使用了ADO.NET等接口对象的相关技术。2.1 ADO.NET概述ADO.NET为.NET Framework提供高效的数据访问机制,ADO.NET提供对Microsoft SQL Server等数据源以及通过OLEDB等数据源的一致访问,数据共享使用者应用程序可以使用ADO.NET来连接到这些数据源,并检索、操作和更新数据。ADO.NET的结构不是很复杂,主要包括Connection(数据库的连接)、Command(执行数据库的命令)、DataReader(数据库的读取库)、DataSet(数据集)和DataAdapter(数据库的适配器,主要用来操作数据库填充并操作DataSet,它是数据库和DataSet之间的桥梁)。Connection类主要提供连接数据库的功能,即提供一个连接,应用程序可以通过此连接把数据库的操作指令传送到数据存储器等。连接数据库方式有信任连接和用户名密码两种方式,Connection类提供数据库(源)的连接是实现操作数据库的操作。Command类提供SqlCommand、OleDbCommand、OdbcCommand、和OraceCommand几种访问方式可以直接访问不同种类的数据库。同时Command类是支持IDbComand接口,可以从数据库获取一个标量结果或者一个存储过程的输出参数。该类主要提供从数据库检索数据、插入数据、修改和删除数据。DataReader类通过Command类提供从数据库检索数据信息的功能。此功能以一种只读的、向前的、快速的方式访问数据库,在读取或操作数据库时,不能断开和数据库之间的连接。所以在使用DataReader对象时,必须保持和数据库的连接。DataSet类是一个新的数据结构。表面上看,它和ADO RecordSet有很多相似之处,但是它比ADO RecordSet远远要复杂得多。DataSet提供一种断开式的数据访问机制,即以驻留在内存中的形式来显示数据库之间的关系模型。DataSet可以看成数据存储器的部分数据的本地副本,可以执行读取、插入、修改和删除其中的数据。DataAdapter类用做DataSet和数据源之间的桥接器以便检索和保存数据。DataAdapter通过映射Fill方法来更改DataSet中的数据以便与数据源中的数据相匹配,通过Update方法来更改数据源以便与DataSet中的数据相匹配。DataAdapter类实现了SelectCommand、InsertCommand、UpdateCommand和DeleteCommand等数据库访问方式。2.2 SQL Server概述SQL Server是一个关系数据库管理系统,它最初是由Microsoft、Sybase 和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。在Windows NT推出后,Microsoft与Sybase在SQL Server的开发上就分道扬镳了。Microsoft 将SQL Server 移植到Windows NT系统上专注于开发推广SQL Server 的Windows NT 版本;Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。SQL Server作为微软公司的产品,一经推出就以其良好的性能和易用性赢得了广大用户的青睐,尤其是在中小型企业中SQL Server的应用更是普遍。SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的一个非常常用的版本。该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能,具有使用方便、可伸缩性好以及与相关软件集成程度高等优点。可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。2.3 C#概述C#是微软为.NET框架推出的核心编程语言。C#可以编写客户端的脚本、创建商业逻辑、服务器端编程、编写Windows应用程序、进行组件设计等。C#是从C/C+演变而来。但它简化和现代化了C+的类、命名空间、方法重载和异常处理等。屏蔽了C+的复杂性,使它更易用。C#语言具有面向对象、类型安全、兼容和灵活的特点。而使用微软公司相应的Visual Studio .NET作为开发工具,更是能够方便的使用大量的控件,从而加快开发速度。.NET Framework的核心是公用语言运行环境(Common Language Runtime, CLR),CLR和Java虚拟机一样,也是一个运行环境,它负责资源管理,并保证应用和底层操作系统之间必要的隔离。第3章 进销存系统的设计3.1 需求分析3.1.1 用户需求系统开发的目标是实现企业的仓库管理的系统化,规范化和自动化。这是在用户要求的基础上提出来的,用户要求如下:u 企业财务管理:有的时候企业和往来单位之间的帐款无法一次性结清,客户要求本系统能对帐款的应收应付情况作出统计,哪个单位在什么时候付了多少款,还欠多少,都要有个明细的情况。u 产品库存:通过本系统,能够清楚的看到企业库存中的产品数量等信息,当库存量低于一定值时,要有警报提醒,使企业老板能够根据库存信息作出进货决策。u 客户管理:能够对企业的客户有一个清楚地了解,通过客户管理部分保持和客户建立良好地关系。及时得到客户的反馈意见,上交有关部门及时处理,不仅可以更好的服务客户,还为吸引更多的客源做铺垫u 针对这些要求,我们首先要建立一个整体的框架。3.1.2 系统任务经过分析,可以得到进销存系统的主要任务有:u 企业的采购管理u 企业的销售管理(批发,零售)u 企业库存商品的管理u 企业应收款,应付款的管理u 企业经营状况分析与决策3.2 系统模块分析经过对系统任务的分析,可以得到系统的整体模块图3.0图3.0 系统整体模块分析图下面,让我们分别对这些模块进行具体的展开分析:3.2.1 基本信息管理基本信息管理模块中包含:u 商品编码设置u 商品资料维护u 往来单位资料维护u 员工信息维护“商品编码设置”用于设置商品编码的方法。本系统运用的编码占用四位,从T1001开始,自动生成。“商品资料维护”用于维护(增加,修改,删除,查询)企业经营商品的基本信息,内容包括商品编号,商品名称,商品单位,数量,单价,金额,速查码(拼音编码)等。“往来单位资料维护”用于维护企业供应商和客户的基本信息,内容包括往来单位编号,单位名称,单位电话,单位地址,联系人等“员工信息维护”用于维护企业操作员的基本信息,包括编号,姓名,性别,电话,所在部门等 具体分析图如图3.1图3.1基本信息管理模块分析图3.2.2 进货管理进货管理模块中包含:u 进货单u 进退货管理u 往来对帐u 应付查询各功能模块实现的功能分别为:“进货单”用于录入企业的进货单,也分为主从两张表,主表“进货单”内容包括编号,供货单位,进货日期,经手人等。从表“进货单明细”内容包括编号,商品编号,名称,进货数量,进价等。填写进货单以后商品的库存才会产生应付款。“进退货管理”录入企业进货退货单,主表内容包括商品编号,进货单编号,日期,往来单位等。从表“进货退货单明细”包括商品编号,进货单号,商品名称,商品单位,进货日期,数量,价格等。 “往来对帐”用于统计往来单位与本单位之间的经济往来。“应付查询”用于查询本单位应付给往来单位的金额。具体分析图如图3.23.2进货管理模块分析图3.2.3 销售管理销售管理用于管理企业的销售业务,销售管理模块中包含:u 销售单u 销售退货单u 往来对帐u 应收帐款各功能模块实现的功能分别为: “销售单”用于录入企业的销售单,主表“销售单”包括商品编号,往来单位,销售日期,经手人等。从表“销售单明细”包括商品编号,销售单号,商品名称,商品单位,销售日期,销售数量,销售价等。“销售退货单”用于录入企业销售退货单,主表内容包括商品编号,销售单编号,日期,往来单位,应付金额,实付金额等。从表“销售退货单明细”包括商品编号,销售单号,商品名称,商品单位,销售日期,销售数量,销售价等。“往来对帐”用于统计往来单位与本单位之间的经济往来。“应收帐款”用于查询往来单位应付给本单位的金额。具体分析如图3.3图3.3销售管理模块分析图3.2.4 库存管理库存管理用于管理企业的库存信息,库存管理包含的内容如下:u 库存状况查询u 库存盘点u 库存上限报警u 库存下限报警各功能模块实现的功能为:“库存状况”用于查询仓库库存的情况。在库存查询中可以设置库存的报警上下限。“库存盘点”用于管理企业的库存盘点工作,将实际盘存的商品数量输入计算机,计算机自动与数据库中的库存数量进行核对。“上下限设定”用于设置库存的上限和下限,当商品库存的数量超出指定的范围时系统可以自动报警。库存查询用于查询企业商品的库存。具体分析如图3.4图3.4库存管理模块分析图3.2.5 应付款管理“应付款管理”用于管理企业的应付款服务3.2.6 应收款管理“应收款管理”用于管理企业的应收款业务3.2.7 系统管理系统管理是每个系统都必须具备的功能,包括的内容如下:u 本单位信息u 系统管理设置u 数据备份u 数据恢复u 系统数据清理各功能模块实现的功能分别为:“本单位信息”用于设定设定本单位的信息。包括单位的全称,电话,地址等。“系统管理设置”用于设置各操作员使用系统操作的权限,还可以更改用户的密码。 “数据备份”用于备份系统数据库。“数据恢复”用于恢复系统数据库。“系统数据清理”用于系统数据清理,将清理系统所有的数据以及帐本,数据都不存在,在系统清理磁盘前,请作好备份工作,否则造成大量数据丢失带来不必要的损失。具体分析如图3.5图3.5系统管理模块分析图3.3 系统详细设计企业的进销存是以信息流为主线,货物流、物流、资金流三流互动的,关于进库,销售和库存的表述。其业务流程如图3.7所示图3.7 进销存系统的业务流程图由于本人负责的模块是实现库存的上下限管理,库存的查询,权限的管理和一些基本信息的维护功能,所以以下非本人负责的内容均被省略。3.3.1 库存系统设计库存管理系统根据其主要业务分为采购入库、销售出库、库存盘点和安全库存量管理等。图3.8为库存管理业务的数据流程图。图3.8库存数据流图一、 库存查询设计图3.9和图3.10为库存查询的数据流分析图3.9库存查询数据流分析(1)图310库存查询数据流分析(2)3.3.2 权限管理设计图3.11系统登陆流程图A. 组织对象子模型组织对象子模型是用来定义人的组织形式的模型。它包括两个基本概念:组织对象(organization object)和组织关系(organization relationship)。典型的组织对象有五种,即“人员”、“部门”、“岗位”、“组”和“角色”。在本文种,它们的描述分别如下:人员:组织机构中的基本组成单位,是独立的、具有一定行为能力的人的实体;是授权的基本主体对象。部门:组织机构中相对静态的机构划分,根据组织结构的实际部门设置情况来决定,可以是传统的面向职能的,也可以是面向过程与客户的;这里的部门是个广义的概念。如果把一个集团公司看作是一个大的部门,那么其下属公司则是一个子部门。我们使用部门来通称一切相对静态的组织机构。岗位:对应于组织机构中相对静态的职能划分,一个组织的存在意义或者存在目标客观决定了该组织中岗位的内容和数量。岗位与职务在权限管理范畴内有着相同的内涵。组:以执行某一任务动态组建的、可以跨部门划分的一种组织结构。角色:以执行某一任务而设置的动态岗位,主要存在于组中。B. 组织关系组织关系是组织对象之间的内在联系,基本的组织关系有:部门一部门关系:一个部门可以包含多个子部门。部门一人员关系:部门是由人员组成的,一个人员可以属于多个部门。部门一岗位关系:一个部门能够包含一定种类和数量的岗位,一个岗位可以属于多个部门。岗位一人员关系:部门中的人员都有相应的岗位,一个人员可以属于多个岗位。组一组关系:一个组可以包含多个子组。组一人员关系:组是由人员组成的,一个人员可以属于多个组。组一角色关系:一个组中包含着若干个特定任务的角色,一个角色可以属于多个组。角色一人员关系:组中的人员都有相应的角色,一个人员可以属于多个角色。组织对象之间的关系可以用图3.12所示图3.12组织对象关系图C. 权限分配方式本子模型的设计核心是权限分配方式,有两点,其一:选择哪些组织对象拥有权限对象,其二:选择哪些权限对象能直接分配给组织对象。下面分别论述。a) 对拥有权限的组织对象的选择一般来讲,部门和组是人员的集合形式,这种形式是不带权限意义的。但部门和组又有相应的职能和任务,为了区分其他部门和组的职能和任务,部门和组又具有权限意义。然而部门和组本身是无法细分该部门和组所具有的职能和任务所代表的权限,所以我们在部门和组里配置了一定种类和数量的岗位和角色,来分割部门和组的内部权限,让该部门和组中的人员各就其职。但是,不同的部门和组经常拥有一些相同的岗位和角色,这些岗位和角色往往拥有一些与部门和组无关的相同的权限,我们希望将这些与部门和组无关的权限一次分配给该岗位和角色,而不必对每个部门和组内的相同岗位角色都分配一次权限。所以,基于上述的分析,有三种设计方案。其一:部门和组不具有权限,岗位和角色具有两部份权限:一部份是该岗位和角色的公共权限,与该岗位和角色所属的部门和组无关;另一部分是受部门和组约束的岗位和角色权限比如:一个公司有若干个部门,每个部门都有部门经理岗位。一条需求描述是:所有的部门经理都有批准该部门成员一天事假的权限。针对该条需求做如下分析:部门经理岗位有一条公共权限,就是批准一天事假的权力,但不具有批准对象;而不同部门的部门经理岗位具有批准该部门成员事假的权力,但不具有批准时间。那么将该岗位的公共权限和受部门约束的岗位权限相并,则满足了该条需求描述。其二:部门和组具有权限,岗位和角色也具有权限。其中部门和组所具有的权限是与该部门和组中的岗位和角色无关的公共权限,岗位和角色所具有的权限是与该岗位和组所属的部门无关的公共权限。这样,弱化了部门与岗位,组与角色之间的拥有关系,变成了一个对客观组织结构的描述,而部门和组与岗位和角色之间成了一个矩阵式的权限结构。比如:个公司的文档的密级分为绝密、机密和秘密。该公司岗位有三级,总经理岗位能看到绝密以及绝密密级以下的文档,部门经理岗位能看到机密以及机密密级以下的文档,而普通员工只能看到秘密级文档。该公司不同部门的人员只能看到本部门的文档。这样,一个员工能看到哪些文档,取决于该员工属于哪个岗位和哪个部门。其三:部门和组具有该部门和组的公共权限,岗位和角色具有该岗位和角色的与部门和组无关的公共权限和受部门和组约束的权限。结合方案一中的例子,再做一些补充,新增的两条需求描述如下:第一条是该公司所有部门的所有岗位的人员都有申请请假的权限,第二条是人事部的所有岗位的人员都有查看该公司所有人请假情况的权限。针对这条需求,如果采用第一种设计方案,在满足第一条需求时,需要将所有的部门的所有岗位都要一一赋予请假权限,非常烦琐;如果采用第二种设计方案,则无法满足第二条需求。而第三种设计则能较好的满足上述新增的两条需求:将公司所有岗位的人员所具有的申请请假的权限赋予该公司这个大的部门对象,将人事部的所有岗位的人员查看该公司所有人请假情况的权限赋予人事部这个部门对象。通过以上三种设计方案的论述和比较,本文选择第三种设计方案。在论述完组织对象中的部门、岗位、组和角色对权限的拥有情况后,还剩下最后一种组织对象人员。客观上将,人本身是不具有任何权限的。只有该人员在特定的部门和岗位或者组和角色中,才具有这些环境所赋予他的权限。但是,在实际的应用中往往会出现这样的一些情况:某人员拥有他所在环境不具备的一些特殊权限,而这些特殊权限又不能被他所在环境的其他人拥有。这就意味着必须为该人员建立单独的岗位或者角色,这样既烦琐也不符合实际情况。于是也可以给人员直接赋予权限,这些权限可以理解为该人员的扩展权限。不同的组织对象与权限对象之间的拥有关系如图3.13所示图3.13不同的组织对象对权限对象的拥有关系b) 对可分配给组织对象的权限对象的选择权限对象有两种:基本权限(简称权限)和权限组。一般可选择的分配方式有两种:一是只将权限组分配给组织对象;二是既可以将权限组分配给组织对象,也可以将基本权限分配给组织对象。如果采用第一种分配方式,分配相对简单,赋予组织对象的权限对象都是单一的权限组对象,实现难度比较低,但缺点就是不够灵活。在实际应用中经常现将某些单个的权限分配给组织对象的情况,如果为这些单个的权限分别建立权限组,既烦琐,也失去了组的意义。所以我们采取第二种分配方式,如图3.14所示图3.14可分配给组织对象的权限对象c) 权限分配的约束在RBAC模型中,授权定义了如下约束:u 最小权限原则:规定用户所拥有的角色集所对应的权限不能超过用户工作时所需要的最大权限 u 责任分离原则:目的在于为不同角色进行任务和相关权限的划分,以便有效地防止用户相互勾结。依责任的互斥程度,可以分为两种形式。静态责任分离(static separation of duty constraint,简称SSD):不能将某两个角色分配给同一个用户,例如银行系统中的出纳员角色和审计员角色。动态责任分离(dynamic separation of duty constraint,简称DSD):允许将某两个角色分配给同一个用户,但是不允许任何一个用户在同一个事务处理过程中担任这两个角色,例如出纳员角色和帐户持有人角色。u 角色集最大值限定原则:一个角色的成员个数不允许超出规定的最大值。在MISBAC模型中,授权也存在同样的约束。但MISBAC模型和RBAC模型不同的一点是:RBAC模型的角色概念是抽象的,并不具有现实含义。而MISBAC模型中组织对象是具体的,是能够高度模拟现实中的组织机构的,因而具有现实含义。那么,在现实的组织机构中,权限已经是受约束的,比如银行的出纳岗位和审计岗位肯定是由不同人员担任的,反应到MISBAC模型中的组织对象子模型中,也会由不同人员担任这两个岗位。3.3.3 数据库表设计本系统一共有14张表。分别为:进货表(主表),进货表(明细表),往来单位表,本单位信息表,库存表,销售表(主表),销售表(明细表),进货退货表(主表),进货退货表(明细表),销售退货表(主表),进货退货表(明细表),权限表,员工信息表,往来帐户明细表。1. 进货表,用于记录单子的录单日期,编号,供货单位,经手人等信息表3.1进货表(主表)tb_warehouse_main属性名类型说明billdatedatetime录单日期billcodevarchar编号unitsvarchar供货单位handlevarchar经手人summaryvarchar摘要fullpaymentfloat应付款paymentfloat实际付款2. 进货表(明细表),用于记录单号,商品编号,单位名称,单位等信息表3.2进货表(明细表)tb_warehouse_detailed属性名类型说明billcodevarchar单号tradecodevarchar商品编号fullnamevarchar商品名称unitvarchar单位qtyfloat商品数量pricefloat商品价格tsumfloat金额billdatedatetime日期3. 往来单位表用于记录往来公司的商品编号,公司名称等信息表3.3往来单位表 tb_units属性名类型说明unitcodevarchar公司编号fullnamevarchar公司名称taxvarchar税号telvarchar电话linkmanvarchar联系人addressvarchar地址accountsvarchar帐户gatheringfloat实收款paymentfloat实付款4本单位信息表用于记录本单位的全称,电话等信息表3.4本单位信息表 tb_unit属性名类型说明fullnamevarchar单位全称taxvarchar税号telvarchar电话linkmanvarchar联系人addressvarchar地址accountsvarchar帐户5库存表用于记录商品编号,商品名称,价格等信息表3.5库存表 tb_stock属性名类型说明tradecodevarchar商品编号fullnamevarchar商品名称typevarchar型号standardvarchar规格unitvarchar单位producevarchar产地qtyfloat数量pricefloat价格averagepricefloat加权平均价格salepricefloat销售价stockcheckfloat盘点数量upperlimitint上限lowerlimitint下限6.销售表记录销售日期,销售单号等信息表3.6销售表(主表)tb_sell_main属性名类型说明billdatedatatime销售日期billcodevarchar销售单号unitsvarchar往来单位handlevarchar经手人summaryvarchar摘要fullgatheringfloat应收款gatheringfloat实收款7.表销售表(明细表)用来记录销售单号,商品编号,商品名称,单位,价格,数量等信息表3.7销售表(明细表)tb_sell_detailed属性名类型说明billcodevarchar销售单号tradecodevarchar商品编号fullnamevarchar商品名称unitvarchar单位qtyfloat数量pricefloat价格tsumfloat金额billdatedatetime销售日期8进货退货表用来记录销售日期,销售单号,往来单位等信息表38进货退货表(主表) tb_rewarehouse_main属性名类型说明billdatedatatime销售日期billcodevarchar销售单号Unitsvarchar往来单位handlevarchar经手人summaryvarchar摘要fullgatheringfloat应收款gatheringfloat实收款9进货退货表(明细表)表39进货退货表(明细表)tb_rewarehouse_detailed属性名类型说明billcodevarchar销售单号tradecodevarchar商品编号fullnamevarchar商品名称Typevarchar型号standardvarchar规格producevarchar产地Unitvarchar单位Qtyfloat数量Pricefloat价格Tsumfloat金额billdatedatetime销售日期10销售退货表主要记录录单日期,编号,供货单位等信息表3.1