1、电脑配件管理系统电脑配件管理系统数据库设计文档 上海交通大学 版本1.0简介本系统采用关系型数据库模式,以C# 与ADO.NET作为开发工具。本系统为顾客自助装机,查询电脑配件信息,与售货方建立反馈关系提供服务,为电脑零配件售货方对商品,顾客,交易,供货方,雇员等多方面的管理提供便利,提供各种销售相关的统计图表以表示交易的相关信息,还提供了基于smtp的email发送机制,对顾客可以进行质量跟踪,产品推销,对供货方可以自动要求供货,并且提供了智能化的提醒与处理功能,使用户在特殊情况时得到提醒,免却了面对大量数据不知所措的情况。通过比较完整的业务流程,实现了顾客,售货商,供货商,雇员相互之间的联
2、系。相关文档1A First Course in Database Systems 机械工业出版社2数据库创建、数据仓库与优化 清华大学出版社3SQL Server7.0开发指南 清华大学出版社 4Visual C# 应用编程 电子工业出版社5数据挖掘原理 机械工业出版社6C#高级编程 清华大学出版社 7Microsoft Visual Studio .NET 2003文档8ChartDirector for .Net Documentation 9电脑配件管理系统需求文档系统结构基本结构本系统基本结构如图:用户通过图形用户界面选择所要查询的信息等,客户层通过数据服务层与数据库建立连接,进行操
3、作,获得数据,然后利用ADO.Net提供的DataSet对象与C#.NET提供的DataGrid容器显示数据。用户也可以在客户层通过数据服务层对数据库进行修改,最后将结果写回数据库。从上图可以看出,本系统大致由3块构成:1、数据库,存放了所有有关商品,顾客,供货商,交易,雇员,价格更新纪录的信息2、数据服务层,负责处理用户请求,与数据库连接,并返回相应的结果或进行修改3、客户层图形界面,顾客与管理员通过客户层传送相关请求与数据服务层连接所以本系统共涉及了2部分的编程:一是图形用户界面的C# .NET编程;二是数据库设计和ADO.NET编程。特殊结构本系统使用了名为ChartDirector 的
4、控件用以作为统计图的绘制与显示,通过数据库的查询结果分别传入该控件的x轴,y轴,可以产生相应的饼图,柱状图,曲线图。本系统通过文件的读写实现了对用户操作与设置的记录功能,可以再重新启动后仍保留自动提醒功能的原有设置,以提醒管理员或进行自动操作。本系统通过C#类库实现了电子邮件的发送,通过与smtp服务器的连接,可以将指定的内容发送到指定对象的信箱中。系统模块 以上具体功能见事务流程 E/R 模型设计上述E/R 模型有不合理之处。例如:产品和供应商之间是多对一的关系,这里的销售实际上是一个弱实体集,它需要产品编号和客户编号来最终确定其每一次的销售情况。上述图缺少属性表示,缺少根据规范化理论,把E
5、/R模型转化到关系模型的步骤。 数据库模式及其它全局数据结构1商品信息表 products(productID,companyName,componentName,productName,detail,outprice,inprice,stock,providerName) 其中productID是主键,表示商品编号,companyName表示厂商名,componentName表示配件类型,productName表示产品名,detail表示具体的配置信息, outprice表示商品的售价,inprice表示商品的进货价,stock表示商品的货存,providerName表示商品的供货方,是指向
6、provider表的外键。2顾客信息表customers(customerID,name,address,phoneNumber,password,email) 其中customerID是主键,表示顾客id号,name表示顾客的真实姓名,address表示顾客的住址即送货地址,phoneNumber表示顾客的联系电话,password表示顾客用id登陆时的密码,email表示顾客的email地址,以此来对反馈进行回复。3交易信息表 (该表没有设计主码) sales(productID,customerID,saleTime,dueTime,price,profit) 其中productID,c
7、ustomerID为外键,分别指向products ,customers表中的主键,saleTime表示交易进行的时间,dueTime表示交易到期即送货的时间,price表示商品价格,profit表示这次交易的利润额。4供货商信息表providers(providerName,email,phone) 其中providerName是主键,表示供货商名,email表示供货商的email地址,通过它来请求供货商供货,phone表示供货商的联系电话。5雇员信息表 (该表没有表示雇员的工作,即E/R图中的assignment)employees(eid,ename,phone,address,rank
8、)其中eid是主键,表示雇员编号,ename表示雇员的姓名,phone表示雇员的联系方式,address表示雇员的住址,rank表示雇员的等级,以此作为薪酬的评定依据。5价格历史记录表history(productID,updateTime,price)其中productID为外键,引用了products表的主键,updateTime表示价格记录的时间,price表示记录时该商品的价格 E/R图中有些实体没有被设计为关系表,也没有说明原因。各表关系图 图形用户界面顾客界面用户登陆界面用户功能界面产品查询界面用户信息注册与修改界面用户装机配置界面配置单确认界面销售统计图界面管理员界面管理员功能界
9、面顾客信息管理界面产品,雇员,供货商管理界面略交易管理与送货安排界面自动提醒与自动处理界面事务流程顾客方面1查询产品数据(1)顾客设置产品的配件类型,厂商名,价格范围或编号(2)根据以上属性在数据库中进行查找,将返回结果装入dataset,然后在datagrid中显示。(3)查看价格的走势2注册,修改个人信息(1)顾客填写自己的相关信息(2)根据customers表相关字段的属性进行判断(3)检查用户id是否与数据库中已由元素冲突(4)如果没有错误与冲突,将之加入数据库或修改数据库3装机DIY(1)顾客选择相关配件列表(2)根据配件的所有厂商的列表选择相应厂商(3)表格显示查询结果(4)挑选需
10、要的商品(打勾,next)(5)已选商品列表添加选择的商品 (6)完毕后确认(7)显示配置单与总价格(8)返回(1)进行修改(9)选择送货时间并确认4建议反馈(1)填写反馈(2)递交5统计图查询(1)选择相应的统计图,设置时间范围与配件类型(2)调用相应的查询语句查询(3)将返回结果装入dataset,然后在chartdirecter控件中显示图像。管理员方面1查询产品数据(1)管理员设置产品的配件类型,厂商名,价格范围,编号,库存范围(2)根据以上属性在数据库中进行查找,将返回结果装入dataset,然后在datagrid中显示。(3)选择库存较少的商品,设置需要的供货量,发送email请求
11、供货。(4)进入修改界面,设置要添加或修改的记录的属性(5)检查属性值是否符合条件,符合的话,对数据库进行添加或修改2查询顾客信息(1)选择要查看的客户(2)点击“显示交易信息”,则显示该顾客的交易次数与交易总金额。(3)选择“察看反馈”,则显示该顾客的所有反馈,可以进行回复与删除3查询供货商信息(1)选择要查看的供货商(2)进入图形界面进行添加删除操作(3)选择“显示提供商品”,则显示指定供货商所提供的所有商品。4查询雇员信息(1)选择要查看的雇员(2)进入图形界面进行添加删除操作(3)选择“提升”,“降级”可以对雇员评级5查询交易信息(1)选择要查看的交易(2)选择“显示具体配置”,可以显
12、示该笔交易的配置单与总价格(3)选择雇员送货,可以安排该雇员进行送货。(4)选择取消送货,可以取消送货安排。6价格历史记录(1)进行所有商品的价格的记录,以备查询价格走势情况7统计图查询(1)选择相应的统计图,设置时间范围与配件类型(2)调用相应的查询语句查询(3)将返回结果装入dataset,然后在chartdirecter控件中显示图像。8关联度查询(数据挖掘)(1)设置支持度(即商品组合在销售记录中出现的最小次数)(2)利用如下a-priori算法进行筛选(s表示支持度)create table datamining(pid int,saleTime datetime) insert i
13、nto dataminingselect productID,saleTimefrom saleswhere productID in(SELECT productIDFROM salesGROUP BY productID having count(*)=s)select i.pid,j.pidfrom datamining i,datamining jwhere i.saleTime=j.saleTime and i.pid=s(3)显示结果9自动提醒与自动处理(1)选择提醒的触发条件及处理的策略(2)勾选需要提醒或处理的功能(3) 设置后退出,自动提醒功能启动收获与心得1对数据库的设计流
14、程,sql语句的复杂使用,数据库编程的思想有了进一步的认识。2对C#,ADO.NET的开发,文件,网络,数据库的相关操作有了更多了解,对窗体程序的开发有了更多的经验3培养了独立解决问题,通过网络与帮助文档寻找解决办法的能力。4对程序的整体观,大局观,以及具体细节问题的解决处理能力有了很大提升。5对数据挖掘,olap,数据仓库的概念与基本算法有了更多的认识。问题与不足1由于程序设计的开发量较大,涉及的功能与对象较多,所以没有实现网络功能,但在服务器端,建立了若干WebServices,这样客户端可以调用其service而无需在本地机上进行操作,为以后系统的扩充做好准备,这次只是实现了单机的功能,
15、只要再解决http get/set等协议与通信问题,相信可以将系统进化为可在网上操作的在险管理与购物系统,不过这还需要很多时间,无法在这次作业中体现。2由于在统计图绘制方面使用了第三方控件chartdirecter,该控件对中文的支持不太完善,字体大小也无法设置,所以显示的统计图在遇到中文时显示会有一定的问题。3由于电脑购机需要大量的真实数据,而本次试验为测试效率以及使用a-priori算法查询产品间的关联度,随机产生了许多数据,所以真实性无法体现,所得的结果也无法体现数据挖掘的思想。本意是希望找到例如主办与CPU,主板与内存等等商品间的关联关系,但现在由于缺少数据不能体现,但如果积累了大量真实数据,这一问题会得到解决。4系统设计之初,设想能够实现价格的自动更新,因为只要找到这方面的webservice即可实现,但由于国内这方面的服务提供较少,而国外提供的服务其商品与国内的商品大相径庭,所以经过一番努力还是只能放弃原有的构想,改由管理员手动更新,并进行价格纪录,希望在以后可以改进。5对用户的密码加密功能由于sqlserver 中 符号会截断字符串,导致数据存储失败,所以常用的加密算法无法适应这一情况,也只能放弃。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2