版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.1编写目的
从该阶段开发正式进入软件的实际开发阶段,本阶段完成系统的大致设计并明确系统的数据结构与软件结构。在软件设计阶段主要是把一个软件需求转化为软件表示的过程,这种表示只是描绘出软件的总的概貌。本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示。1.2背景a.
待开发软件系统的名称:小型超市后台管理系统b.
任务的提出者:梁永霖老师c.
开发者:马文勇李耀初郑伟清1.3参考资料陶宏才.《数据库原理及设计》.第1版.北京.清华大学出版社.2004年范立南《SQLServer2000实用教程》第2版.北京.清华大学出版社.2005年李香敏《SQLServer2000编程员指南》第1版.北京.希望电子出版社RebeccaM.Riordan《轻松搞定SQLServer2000程序设计》第2版.北京工业出版社.2003年WattsS.Humphrey《软件工程规范》第1版.清华大学出版社.2004年
2.总体设计2.1需求规定
A硬件支持
此软件没有进行远程访问的功能,也就是说软件和数据库服务器均运行与一台及其上面,因此,建议机器至少能顺畅运行SQL服务器。
本程序将在以下硬件系统进行测试:a.
处理器芯片为:IntelCeleron2.66GHz,内存为:512MB,硬盘为:80GB。b.
处理器芯片为:IntelP4,主频1.8GHz,内存为:256MB,硬盘为:40GBc.
处理器芯片为:AMDSempron2500+,内存为:512MB,硬盘为:80GB
B软件支持
本软件将在以下环境下编写完成:操作系统:WindowsXPprofessional编程软件:MicrosoftVisualBasic6.0中文版SQL服务器:Microsoft®SQLServer?2000数据库查询器::SQL查询分析器2.2运行环境操作系统:Windows98以上系统测试系统:WindowsXPSp23.接口设计3.2外部接口本系统设有人机操作界面,考虑到操作简单,易于管理方面,主要硬件接口设备为PC,鼠标,键盘。而软件接口主要以Windows平台为基本平台。系统业务逻辑的独步一时几乎完全封闭在数据存储层实现,中间组件层主要通过调用远程数据库存储过程或用户自定交函数的方式来实现对数据库的访问。数据库设计时,在sqlserver2000大型数据库提供的技术下,充分利用约束,视图,存储过程,用户自定义函数及触发器等技术约束业务规则、维护数据完整性和唯一性,并实现市郊的数据存储与访问。3.3内部接口程序利用VB下的构造ADO的连接对象的ConnectionString的配置,各cls模块之间相互独立又彼此关联,主要通过函数调用实现各部分的连接。
4.系统数据结构设计4.1逻辑结构设计要点
针对一般小型超市后台信息管理系统的需求,通过对商品进出过程的内容和数据流程分析,设计如下面所示的数据项和数据结构,各模块标示符说明如下:系统数据库表结构数据库表索引
表名中文名Userifo系统用户表Supplier供货商信息表GoodsType商品类型表Goods商品信息表Buy进货表Sale销售表Spoilage损坏商品表
自定义数据类型(custem)字段名数据类型长度主/外键字段值约束对应中文名gcxCaptionVarchar100
Notnull实体名称gxcIDInt4PNotnull实体号gxcMoneySmallmoney4
Notnull进货\销售金额gxcRemarkVarchar1000
Null
备注说明gxcTrueNameVarchar10
Notnull真实姓名
商品信息表(Goods)字段名数据类型长度主/外键字段值约束对应中文名GoodsIDgxcID4PNotnull商品号码GoodsNamegxcCaption100
Notnull商品名称AmountDecimal19
Notnull库存数量UnitNamegxcCaption100
Notnull单位名称TypeIDgxcID4
Notnull商品类型号SupplierIDgxcID4
Notnull商品供货商号IntroducegxcRemark1000
Null商品介绍RemarkgxcRemark1000
Null备注
用户表(UserInfo)字段名字段类型长度主/外键字段值约束对应中文名UserIDgcxID4PNotnull用户号UserNamegxcCaption100
Notnull用户名称PasswordgxcCaption100
Notnull用户密码TrueNamegxcTrueName10
Null真实姓名LastLoginTimeDatetime8
Notnull最近登录时间UserTypeBit1
NotNull用户类型
销售表(Sale)字段名字段类型长度主/外键字段值约束对应中文名SaleIDgxcID4PNotnull销售号GoodsIDgxcID1FNotnull商品号AmountDecimal9
Notnull销售数量UnitPricegxcMoney4
Notnull单价registrarIDgxcID4
Notnull录入人员号regDateDatetime8
Null登记时间RemarkgxcRemark10001Null备注
进货信息表(Buy)字段名字段类型长度主/外键字段值约束对应中文名BuyIDgxcID4PNotnull进货编号GoodsIDgxcID4
Notnull商品编号AmountDecimal9
Notnull数量UnitPricegxcMoney4
Notnull进货单价DeliverergxcTrueName10
Null送货员TransactorgxcTrueName10
Null办理员RegistrarIDgxcID4FNotnull录入人员号RegdateDatetime8
Notnull登记时间RemarkgxcRemark1000
Null备注
损坏商品表(Spoilage)字段名字段类型长度主/外键字段值约束对应中文名SpoilageIDgxcID4PNotnull损坏事件号BuyIDgxcID4FNotnull商品编号AmoutDecimal9
Notnull数量ReportorgxcTrueName10
Notnull报损人ReasongxcRemark1000
null损坏原因RegistrarIDgxcID4
NotNull录入人员号Regdatedatetime8
Datetime登记时间
供货商表(Supplier)字段名字段类型长度主/外键字段值约束对应中文名SupplierIDgxcID4PNotnull供货商编号SupplierNamegxcCaption100
Notnull供货商名称ContactgxcRemark1000
Null联系方式IntroducegxcRemark1000
Null简要介绍RemakrgxcRemark1000
Null备注
4.2关系图约束设计数据库关系图如下:
4.3.物理结构设计系统的存储物理结构由数据库来生成。以下为几个例子
查看存在ID字段不为某个值但某个字符型字段等于某个值/*查看某个数据表中*/CREATEPROCdbo.ExistNameWithoutID(
@strTableName
varchar(255),
--表名
@strIDName
varchar(255),
--ID字段名
@intIDValue
int,
--ID字段值
@strFieldName
varchar(255),
--字符型字段名
@strFieldValuevarchar(50),
--字符型字段值
@bitResult
bitOUTPUT
--输出值,0为不存在,1为存在)AS
SETNOCOUNTON
DECLARE@strSQLvarchar(3000)
--主语句
DECLARE@nCountint
--返回记录行数
/*创建存储符合条件的记录数的临时表*/
IFOBJECT_ID('dbo.#tmpTable')ISNULL
CREATETABLE#tmpTable(tmpFieldint)--创建临时表
ELSE
TRUNCATETABLE#tmpTable
--清空临时表
/*在数据库表中检索符合条件的记录数并存储在临时表中*/
SELECT@strSQL='SELECTCOUNT(['+@strFieldName+'])FROM['+@strTableName+']WHERE['+@strFieldName+']='''+@strFieldValue+''''+'AND'+@strIDName+'<>'+CONVERT(varchar(50),@intIDValue)
SELECT@strSQl='INSERT#tmpTable'+@strSQL
EXEC(@strSQL)
/*在临时表中返回存储的记录数*/
SELECTTOP1@nCount=tmpFieldFROM#tmpTableORDERBYtmpField
/*删除临时表*/
DROPTABLE#tmpTable
/*输出参数*/
IF@nCount>0
SELECT@bitResult=1
ELSE
SELECT@bitResult=0GOSETQUOTED_IDENTIFIEROFFGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_NULLSONGO添加一条商品信息/*添加一条商品信息,输出商品编号和执行结果*/CREATEPROCdbo.GoodsAddNew(
@GoodsName
varchar(100),
--商品名称
@Amount
decimal(18,2),
--库存数量
@TypeID
int,
--类型编号
@UnitName
varchar(100),
--单位
@SupplierID
int,
--供货商编号
@Introduce
varchar(1000),
--商品介绍
@Remark
varchar(1000),
--备注
@ID
intOUTPUT,
--商品编号
@ReturnValue
intOUTPUT
--执行结果(VB组件的自定义枚举值))AS
DECLARE@ErrNoint
--保存错误号
BEGINTRANSACTION
--开始事务
/*手动维护数据唯一性的代码。*/
DECLARE@ExistNamebit
EXECExistByName'Goods','GoodsName',@GoodsName,@ExistNameOUTPUT
IF@ExistName=1
--当前商品名称已存在
BEGIN
ROLLBACKTRANSACTION
--回滚事务
SELECT@ReturnValue=3
--返回VB组件的自定义枚举值
RETURN
--结束存储过程
END
/*添加记录*/
INSERTINTOGoodsValues(@GoodsName,@Amount,@UnitName,@TypeID,@SupplierID,@Introduce,@Remark)
--记录当前的错误号
SELECT@ErrNo=@@ERROR
/*输出参数*/
IF@ErrNo=0
--没有发生错误
BEGIN
SELECT@ID=(SELECTMAX(GoodsID)FROMGoods)
SELECT@ReturnValue=0
END
ELSEIF@ErrNo=2627
--违反唯一约束
BEGIN
ROLLBACKTRANSACTION
--遇到错误则回滚事务
SELECT@ReturnValue=3
RETURN
END
ELSE
--其他未知错误
BEGIN
ROLLBACKTRANSACTION
--遇到错误则回滚事务
SELECT@ReturnValue=1
RETURN
END
COMMITTRANSACTION
--提交事务GOSETQUOTED_IDENTIFIEROFFGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_NULLSONGO删除一条商品信息/*删除一条商品信息,输出执行结果*/CREATEPROCdbo.GoodsDelete(
@GoodsID
int,
--商品编号
@ReturnValue
intOUTPUT
--执行结果(VB组件的自定义枚举值))AS
DECLARE@ErrNoint
--保存错误号
BEGINTRANSACTION
--开始事务
/*验证是否存在当前商品编号,若否则不能删除*/
DECLARE@ExistIDbit
EXECExistByID'Goods','GoodsID',@GoodsID,@ExistIDOUTPUT
IF@ExistID=0
--当前商品编号不存在
BEGIN
ROLLBACKTRANSACTION
--回滚事务
SELECT@ReturnValue=2
--返回VB组件的自定义枚举值
RETURN
--结束存储过程
END
/*手动维护数据完整性的代码*/
EXECExistByID'Buy','BuyID',@GoodsID,@ExistIDOUTPUT
IF@ExistID=1
BEGIN
ROLLBACKTRANSACTION
SELECT@ReturnValue=3
RETURN
END
/*验证销售信息是否包含当前商品,若是则不能删除*/
EXECExistByID'Sale','SaleID',@GoodsID,@ExistIDOUTPUT
IF@ExistID=1
BEGIN
ROLLBACKTRANSACTION
SELECT@ReturnValue=3
RETURN
END
/*删除记录*/
DELETEFROMGoodsWHEREGoodsID=@GoodsID
--记录当前的错误号
SELECT@ErrNo=@@ERROR
/*输出参数*/
IF@ErrNo=0
--没有发生错误
SELECT@ReturnValue=0
ELSEIF@ErrNo=547
--发生外键冲突
BEGIN
ROLLBACKTRANSACTION
--遇到错误则回滚事务
SELECT@ReturnValue=3
RETURN
END
ELSE
--其他未知错误
BEGIN
ROLLBACKTRANSACTION
--遇到错误则回滚事务
SELECT@ReturnValue=1
RETURN
END
COMMITTRANSACTION
--提交事务GOSETQUOTED_IDENTIFIEROFFGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_NULLSONGO返回所有供货商CREATEVIEWdbo.view_SupplierAS
/*返回所有供货商*/
SELECTSupplierID,SupplierName,Contact,Introduce,RemarkFROMSupplierGOSETQUOTED_IDENTIFIEROFFGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIEROFFGOSETANSI_NULLSONGOCREATEVIEWdbo.view_Buy
AS
SELECTB.BuyID,B.GoodsID,G.GoodsName,
B.UnitPrice,B.Amount,G.UnitName,
B.UnitPrice*B.AmountASTotalPrice,
B.Deliverer,B.Transactor,B.RegistrarID,
B.RegDate,G.TypeID,G.SupplierID,B.Remark
FROMBuyASBLEFTOUTERJOINGoodsASG
ONB.GoodsID=G.GoodsIDGOSETQUOTED_IDENTIFIEROFFGOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_NULLSONGO
5.运行测试5.1.运行模块的组合具体软件的运行模块组合为程序多窗口的运行环境,各个模块在软件运行过程中能较好的交换信息,并能够独立的处理各自的数据。5.2.测试及问题提出
软件运行时有较友好的界面,基本能够实现用户的数据处理要求。
问题1:无法进入数据库
问题2:字段名称与SQL关键字冲突
添加字符型数据的时候,如果该数据饮食了单引号,则会造成字符的意外截断而产生错误。
问题3:个别触发器无作用
在Buy表上的delete触发器中,不能完成删除商品信息的时候同步更新商品库存的功能。5.3.问题解决系统的运行时间基本可以达到用户所提出的要求。问题解决如下
解决问题1:'设置服务器名称,数据库名称,登录名(此时假设密码为空)PublicFunctionConnectToDatabase()AsBoolean
OnErrorGoToErrHandler
Setg_Conn=NewConnection
DimServerNameAsString,DBNameAsString,UserNameAsString,strPasswordAsString
'连接SqlServer的连接字符串设置
ServerName="(local)"
DBName="BuySaleStorage"
UserName="sa"
strPassword=""
'连接到SQLServer数据库根据DB文件夹中的内容,创建数据库,推荐用MDF文件附加数据库;
\DB\MDF\BuySaleStorage_Data.MDF
\DB\MDF\BuySaleStorage_LOG.LDF连接参数:
数据库名:BuySaleStorage
登录名:
sa
密码:
无解决问题2:当添加字符型数据的时候,如果该数据饮食了单引号,则会造成字符的意外截断而产生错误。解决方法是把字符数据中的单引号替换为两个单引号,使用了RealString函
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《螺纹与测量》课件
- 《通信系统概论》课件-第2章
- 《GSM的无线信道》课件
- 合同备案解除通知书
- 工伤停工留薪期合同到期补充协议
- 2025年百色货运从业资格证考试题库a2
- 2025年广州道路货物运输从业资格证模拟考试
- 医疗服务融资管理办法
- 火车站出口岗亭施工合同
- 风力发电设备搬运吊车租赁协议
- SAP生产计划概念及实施流程
- MSA 测量系统培训教材
- 时间轴公司发展历程企业大事记PPT模板
- 大学无机及分析化学----气体练习题及答案
- 北师大版数学初二上册知识点总结
- 铁路建设项目施工企业信用评价办法(铁总建设〔2018〕124号)
- 模具报价表精简模板
- 形式发票模板 PI模板 英文版
- 高考英语单项选择题题库题
- 检验检测机构资质认定现场评审日程表及签到表
- 兰州市行政区划代码表
评论
0/150
提交评论