小型超市管理系统总体设计说明书

上传人:e****s 文档编号:70416851 上传时间:2022-04-06 格式:DOC 页数:14 大小:30.50KB
收藏 版权申诉 举报 下载
小型超市管理系统总体设计说明书_第1页
第1页 / 共14页
小型超市管理系统总体设计说明书_第2页
第2页 / 共14页
小型超市管理系统总体设计说明书_第3页
第3页 / 共14页
资源描述:

《小型超市管理系统总体设计说明书》由会员分享,可在线阅读,更多相关《小型超市管理系统总体设计说明书(14页珍藏版)》请在装配图网上搜索。

1、小型超市管理系统总体设计说明书小型超 市总体设计说明书 编写目的从该阶段开发正式进入软件的实际开发阶段,本阶段完成系统的大致设计并明确系统的数据结构与软件结构。在软件设计阶段主要是把一个软件需求转化为软件表示的过程,这种表示只是描绘出软件的总的概貌。本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示。 背景a. 待开发软件系统的名称:精诚超市管理系统b. 任务的提出者:老师c. 开发者:陈盖 满喜康 等等.1.3参考资料?数据库原理及设计?.第1版.北京.清华大学出版社.2004年范立南?SQL Server 2000 实用教程

2、?第2版.北京.清华大学出版社.2005年 李香敏?SQL Server 2000 编程员指南?第1版.北京.希望电子出版社Rebecca M.Riordan?轻松搞定SQL Server 2000程序设计?第2版.北京工业出版社.2003年Watts S.Humphrey?软件工程标准?第1版.清华大学出版社.2004年2. 总体设计2.1需求规定A 硬件支持此软件没有进行远程访问的功能,也就是说软件和数据库效劳器均运行与一台及其上面,因此,建议机器至少能顺畅运行SQL效劳器。本程序将在以下硬件系统进行测试:a. 处理器芯片为:Intel Celeron .66GHz, 处理器芯片为:Int

3、el P 4,主频1.8GHz, 处理器芯片为:AMD Sempron 2500+,内存为:512MB,硬盘为:80GBB 软件支持本软件将在以下环境下编写完成:操作系统:Windows XP professional编程软件:Microsoft Visual Basic 6.0 中文版SQL效劳器:Microsoft SQL Server? 2000数据库查询器::SQL查询分析器2.2运行环境操作系统:Windows XP系统测试系统:indows XP Sp23.接口设计3.2外部接口本系统设有人机操作界面,考虑到操作简单,易于管理方面,主要硬件接口设备为PC,鼠标,键盘。而软件接口主要

4、以Windows平台为根本平台。系统业务逻辑的独步一时几乎完全封闭在数据存储层实现,中间组件层主要通过调用远程数据库存储过程或用户自定交函数的方式来实现对数据库的访问。数据库设计时,在sql server 2000大型数据库提供的技术下,充分利用约束,视图,存储过程,用户自定义函数及触发器等技术约束业务规那么、维护数据完整性和唯一性,并实现市郊的数据存储与访问。3.3内部接口程序利用下的构造ADO的连接对象的ConnectionString的配置,各cls模块之间相互独立又彼此关联,主要通过函数调用实现各局部的连接。 4.系统数据结构设计4.1 逻辑结构设计要点针对一般小型超市后台信息管理系统

5、的需求,通过对商品进出过程的内容和数据流程分析,设计如下面所示的数据项和数据结构,各模块标示符说明如下:系统数据库表结构数据库表索引表名UserifoSupplierGoodsTypeGoodsBuySaleSpoilage 自定义数据类型(custem)字段名型 数据类长度 键 主/外字段值对应中文名 约束 中文名 系统用户表 供货商信息表 商品类型表 商品信息表 进货表 销售表 损坏商品表gcxCapVarchationrgxcIDInt gxcMoSmallneymoneygxcReVarchamarkrgxcTruVarchaeNamer商品信息表(Goods) 字段名数据类型Good

6、sgxcIDIDGoodsgxcCaNameptionAmounDecimtal1UnitNagxcCameptionTypeIDgxcID100 4 4 1000 10 长度键410091004 Not nullPNot null Not nullNullNot null主/外字段值约束PNotnull Notnull Notnull Notnull Notnull实体名称实体号进货销售金额备注说明真实姓名对应中文名商品号码商品名称库存数量单位名称商品类型号SuppligxcID erIDIntrodugxcRecemarkRemargxcRekmark 用户表(UserInfo) 字段名字

7、段类型UserID gcxID UserNamgxcCaeptionPasswordgxcCaptionTrueNamgxcTreueNameLastLoginDatetiTimemeUserType Bit 销售表(Sale) 字段名字段41000 1000 长主/度外键4 P 1001 001 8 1 长主/Not nullNull Null 字段值约束Not null Not nullNot nullNullNot nullNot Null字段值约商品供货商号商品介绍备注对应中文名用户号 用户名称用户密码真实姓名最近登录时间用户类型对应中文名类型SaleID gxcID GoodsID

8、gxcID AmountDecimalUnitPricegxcMoneyregistrarIgxcID DregDateDatetimeRemarkgxcRemark 进货信息表(Buy) 字段名字段类型BuyID gxcID GoodsID gxcID AmountDecimalUnitPricegxcMoney度外键4 P 1 F 9 4 4 8 11 000长主/度外键4 P 4 9 4 束Not null Not null Not nullNot null Not null Null Null 字段值约束Not null Not null Not nullNot null 销售号 商品

9、号 销售数量单价录入人员号登记时间备注对应中文名进货编号 商品编号 数量进货单价 Deliverer gxcTr1ueName TransactogxcTr1rueName RegistrarIgxcID4 DRegdateDateti8 meRemarkgxcRe1mark000 损坏商品表(Spoilage) 字段名字段类长型度SpoilageIgxcID 4 DBuyID gxcID 4 AmoutDecima9lReportorgxcTru1eName ReasongxcRe1mark000 F 主/外键PF Null Null Not null Not null Null 字段值约束

10、Not nullNot null Not nullNot nullnull送货员办理员录入人员号登记时间备注对应中文名损坏事件号商品编号 数量报损人损坏原因 RegistrarIDRegdategxcID 4 Not Null 录入人员号datetim8 Datetime 登记时间e 供货商表(Supplier) 字段名字段类型SupplierIgxcIDDSupplierNgxcCaameptionContactgxcRemarkIntroducegxcRemarkRemakrgxcRemark 4.2 关系图约束设计 数据库关系图如下:4.3.物理结构设计长主/度外键4 P1 001 00

11、01 0001 000 字段值约束Not nullNot nullNullNullNull对应中文名供货商编号供货商名称联系方式简要介绍备注系统的存储物理结构由数据库来生成。以下为几个例子 查看存在ID字段不为某个值但某个字符型字段等于某个值/*查看某个数据表中*/CREATE PROC dbo.ExistNameWithoutID(strTableName varchar(255), -表名strIDName varchar(255), -ID字段名intIDValue int, -ID字段值strFieldName varchar(255), -字符型字段名strFieldValue va

12、rchar(50), -字符型字段值bitResult bit OUTPUT -输出值,0为不存在,1为存在 )ASSET NOCOUNT ONDECLARE strSQL varchar(3000) -主语句DECLARE nCount int -返回记录行数 /*创立存储符合条件的记录数的临时表*/IF OBJECT_ID(dbo.#tmpTable) IS NULLCREATE TABLE #tmpTable(tmpField int) -创立临时表ELSETRUNCATE TABLE #tmpTable -清空临时表/*在数据库表中检索符合条件的记录数并存储在临时表中*/SELECT

13、strSQL = SELECT COUNT( + strFieldName + ) FROM +strTableName + WHERE + strFieldName + = + strFieldValue + + AND + strIDName + <> + CONVERT(varchar(50),intIDValue)SELECT strSQl = INSERT #tmpTable + strSQLEXEC(strSQL)/*在临时表中返回存储的记录数*/SELECT TOP 1 nCount = tmpField FROM #tmpTable ORDER BY tmpFiel

14、d /*删除临时表*/DROP TABLE #tmpTable/*输出参数*/IF nCount > 0SELECT bitResult = 1ELSESELECT bitResult = 0GOSET QUOTED_IDENTIFIER OFFGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_NULLS ONGO添加一条商品信息/*添加一条商品信息,输出商品编号和执行结果*/CREATE PROC dbo.GoodsAddNew(GoodsName varchar(100), -商品名称Amount decimal(18,

15、2), -库存数量TypeID int, -类型编号UnitName varchar(100), -单位SupplierID int, -供货商编号Introduce varchar(1000), -商品介绍Remark varchar(1000), -备注ID int OUTPUT, -商品编号ReturnValue int OUTPUT -执行结果VB组件的自定义枚举值 )ASDECLARE ErrNo int -保存错误号BEGIN TRANSACTION -开始事务/*手动维护数据唯一性的代码。*/DECLARE ExistName bitEXEC ExistByName Goods,

16、 GoodsName, GoodsName, ExistName OUTPUTIF ExistName = 1 -当前商品名称已存在BEGINROLLBACK TRANSACTION -回滚事务SELECT ReturnValue = 3 -返回VB组件的自定义枚举值 RETURN -结束存储过程END/*添加记录*/INSERT INTO Goods Values(GoodsName, Amount, UnitName, TypeID, SupplierID, Introduce, Remark)-记录当前的错误号SELECT ErrNo = ERROR/*输出参数*/IF ErrNo =

17、0 -没有发生错误BEGINSELECT ID = (SELECT MAX(GoodsID) FROM Goods) SELECT ReturnValue = 0ENDELSE IF ErrNo = 2627 -违反唯一约束BEGINROLLBACK TRANSACTION -遇到错误那么回滚事务 SELECT ReturnValue = 3RETURNENDELSE -其他未知错误BEGINROLLBACK TRANSACTION -遇到错误那么回滚事务 SELECT ReturnValue = 1RETURNENDCOMMIT TRANSACTION -提交事务GOSET QUOTED_I

18、DENTIFIER OFFGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_NULLS ONGO删除一条商品信息/*删除一条商品信息,输出执行结果*/CREATE PROC dbo.GoodsDelete(GoodsID int, -商品编号ReturnValue int OUTPUT -执行结果VB组件的自定义枚举值 )ASDECLARE ErrNo int -保存错误号BEGIN TRANSACTION -开始事务/*验证是否存在当前商品编号,假设否那么不能删除*/DECLARE ExistID bitEXEC ExistByI

19、D Goods, GoodsID, GoodsID, ExistID OUTPUT IF ExistID = 0 -当前商品编号不存在BEGINROLLBACK TRANSACTION -回滚事务SELECT ReturnValue = 2 -返回VB组件的自定义枚举值 RETURN -结束存储过程END/*手动维护数据完整性的代码*/EXEC ExistByID Buy, BuyID, GoodsID, ExistID OUTPUTIF ExistID = 1BEGINROLLBACK TRANSACTIONSELECT ReturnValue = 3RETURNEND/*验证销售信息是否包

20、含当前商品,假设是那么不能删除*/EXEC ExistByID Sale, SaleID, GoodsID, ExistID OUTPUT IF ExistID = 1BEGINROLLBACK TRANSACTIONSELECT ReturnValue = 3RETURNEND/*删除记录*/DELETE FROM Goods WHERE GoodsID = GoodsID -记录当前的错误号SELECT ErrNo = ERROR/*输出参数*/IF ErrNo = 0 -没有发生错误SELECT ReturnValue = 0ELSE IF ErrNo = 547 -发生外键冲突BEGI

21、NROLLBACK TRANSACTION -遇到错误那么回滚事务 SELECT ReturnValue = 3RETURNENDELSE -其他未知错误BEGINROLLBACK TRANSACTION -遇到错误那么回滚事务 SELECT ReturnValue = 1RETURNENDCOMMIT TRANSACTION -提交事务GOSET QUOTED_IDENTIFIER OFFGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_NULLS ONGO返回所有供货商CREATE VIEW dbo.view_SupplierA

22、S/*返回所有供货商*/SELECT SupplierID, SupplierName, Contact, Introduce, Remark FROM Supplier GOSET QUOTED_IDENTIFIER OFFGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER OFFGOSET ANSI_NULLS ONGOCREATE VIEW dbo.view_BuyASSELECT B.BuyID, B.GoodsID, G.GoodsName,B.UnitPrice, B.Amount, G.UnitName,B.UnitPrice * B.Amoun

23、t AS TotalPrice,B.Deliverer, B.Transactor, B.RegistrarID,B.RegDate, G.TypeID, G.SupplierID, B.RemarkFROM Buy AS B LEFT OUTER JOIN Goods AS GON B.GoodsID = G.GoodsIDGOSET QUOTED_IDENTIFIER OFFGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_NULLS ONGO 5.运行测试5.1运行模块的组合具体软件的运行模块组合为程序多窗口的运行环境,各个模

24、块在软件运行过程中能较好的交换信息,并能够独立的处理各自的数据。5.2测试及问题提出软件运行时有较友好的界面,根本能够实现用户的数据处理要求。问题:无法进入数据库问题:字段名称与SQL关键字冲突添加字符型数据的时候,如果该数据饮食了单引号,那么会造成字符的意外截断而产生错误。问题3:个别触发器无作用在Buy表上的delete触发器中,不能完成删除商品信息的时候同步更新商品库存的功能。5.3问题解决系统的运行时间根本可以到达用户所提出的要求。问题解决如下解决问题:设置效劳器名称,数据库名称,登录名此时假设密码为空Public Function ConnectToDatabase() As Boo

25、leanOn Error GoTo ErrHandlerSet g_Conn = New ConnectionDim ServerName As String, DBName As String, UserName As String, strPassword As String连接Sql Server的连接字符串设置ServerName = "(local)"DBName = "BuySaleStorage"UserName = "sa"strPassword = ""连接到SQL Server数据库根据DB文件

26、夹中的内容,创立数据库,推荐用MDF文件附加数据库;DBMDFBuySaleStorage_Data.MDFDBMDFBuySaleStorage_LOG.LDF连接参数:数据库名:BuySaleStorage登录名: sa密码: 无解决问题:当添加字符型数据的时候,如果该数据饮食了单引号,那么会造成字符的意外截断而产生错误。解决方法是把字符数据中的单引号替换为两个单引号,使用了RealString函数来过滤单引号。按照意义对字段命名,很可能使字段名称与SQL的关键字冲突而产生错误,比方名称为User的字段。解决方法是给字段名称加上中括号“,使字段名称为“User。解决问题:在SQL Server事务中的操作是作为一个整体来执行的。如果手工约束业务规那么和强制数据完整性,心谤腹非把相应的代码与核心操作代码放在一个事务中,这样的才能保持数据的完整性。对触发器而言,由于它和激活触发器的语句一起被作为单一的事务来对待,所以即使没有显式地Begin Transaction语句,在触发器的定义中也可以RollBack Transaction语句。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!