《2022年网上书店信息系统设计方案与实现》由会员分享,可在线阅读,更多相关《2022年网上书店信息系统设计方案与实现(23页珍藏版)》请在金锄头文库上搜索。
1、个人资料整理仅限学习使用目录1 系 统 概 述 1 1. 1电 子 商务 1 1. 2网 上 书 店 系 统 发 展现 状 1 2 系 统 规 划 与 分 析 3 2. 1系 统 开 发 规 划 3 2. 1. 1系 统 开 发 计 划 3 2. 1. 2网 站 设 计 目 标 3 2. 2系 统 需 求 分 析 4 2. 2. 1系 统 需 求 概 述 52. 2. 2网 站 基 本 要 求 5 2. 3系 统 的 可 行 性 分 析 5 2. 3. 1技 术 可 行性 分 析 5 2. 3. 2经 济 可 行性 分 析 6 2. 3. 3操 作 可 行 性 分 析 6 2. 4系 统 的
2、开 发 工 具 分 析 6 2. 4. 1J SP 与 Hi ber nat e 编 程技 术 6 2. 4. 2My Ec l i ps e 开发 工 具 7 2. 4. 3My SQL 数 据 库 7 2. 5组 织 结 构 与 功 能 分 析 8 2. 5. 1业 务 流 程 分 析 8 2. 5. 2数 据 流程 分 析 10 2. 5. 3数 据 字 典 1 13 系 统 设 计 12 3. 1系 统 总 体 结 构 设 计 1 2 3. 1. 1系 统 的 模 块 设 计 1 2 3. 1. 2系 统 的 功 能 设 计 1 4 3. 2输 入 输 出 设 计 1 4 3. 3界
3、面 设 计 1 5 3. 4数 据 库设 计 1 5 3. 4. 1数 据 库分 析 1 5 3. 4. 2概 念 数据 模 型 16 3. 4. 3物 理 数据 模 型 16 3. 5安 全 设 计 1 8 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 23 页个人资料整理仅限学习使用3. 5. 1数 据 安 全 1 8 3. 5. 2网 络 安 全 1 9 4 系 统 实 现 19 4. 1系 统 实 现 环 境 1 94. 2系 统 数据 库 实 现 1 94. 3 书 店 前 台 功 能 实 现 2 64. 4后 台 总 体
4、框 架 3 1 5.总 结 3 25. 1书 店 设 计 开 发 总 结 3 25. 2个 人 体 会 3 21. 系统概述1.1电子商务随着电子技术和因特网Internet网络)的发展,信息技术作为工具被引入到商贸活动中,产生了电子商务 Electronic Commerce简写 EC或 Electronic Business简写 EB )。通俗地说,电子商务就是在计算机网络主要指 Internet网络)的平台上,按照一定的标准开展的商务活动。当企业将它的主要业务通过内联网Intranet)、外联网 Extranet )以及 Internet与企业的职员、客户、供销商以及合作伙伴直接相联时,
5、其中发生的各种活动就是电子商务。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 23 页个人资料整理仅限学习使用由于电子商务的出现,传统的经营模式和经营理念发生了巨大的变化。电子商务主要以飞速发展的Internet为构架,以交易双方为主体,以银行支付和结算为手段,以客户数据库为依托的全新商业模式。电子商务网络购物系统必将会创造巨大的效益和机会,将市场的空间形态、时间形态和虚拟形态结合起来,将物流、资金流、信息流汇集成开放的、良性循环的环路,使经营者以市场为纽带,在市场上发挥最佳的作用,得到最大的效益。网络购物中网上书店管理系统的发展,不
6、仅将有利地推动Internet的发展,对社会的进步和经济的变革产生深远的影响,更重要的是它本身的发展和成熟为我们提供了许许多多的机会。1.2网上书店系统发展现状创建于 1995 年 7 月的网上书店亚马逊 A ),在虚拟天地中充分实现了规模经营。在短短几年时间里,从1000 多家同行中脱颖而出,成为全球最大的书业电子商务王国。但是,经济人士指出,亚马逊公司一直陷入收入高增长和利润高亏损的怪圈。据统计,1998年,其总收入高达611 亿美元,累计亏损却升到6117 亿美元。亚马逊的经历也给我们网上书店的发展蒙上了一层阴影。我国的网上书店也经历了起起落落的过程。从97 年的创建,到99年发展为一个
7、高潮,大批商业公司投入网上书店的经营。进入2000 年后,已注册的网上书店已超过百家,其中有独立网站的有40 多家。但是随着时间的推移,许多当年轰轰烈烈建立的网上书店已风光不再,如99 年建立的号称要在美国上市的8848 网上书店发展到今天已经成为一个综合性的购物网站,书籍销售只占其销售量的很少一部分,专业性和知名度都远不如当当或 99 读书人等其他一些网上书店。而经历了时间考研的一些现在运营如日中天的网上书店发展日益完备,无论是从页面设计、书目检索还是付款及配送方式甚至是售后服务都逐渐地趋向完善,极大地方便了消费者购物,也的确吸引了许多忠实的消费者群,提高了消费者的品牌忠诚度。无论是出于仿效
8、,还是迫于竞争,一些老牌的图书销售商也加入网上书店的行列,如庞诺书店B),疆界书店 B)等。至少在 1997 年,国外网上书店达两百家以上。而在国内,自杭州新华书店创办第一家网上书店后,网上书店如雨后春笋般涌现出来。其中最为有名的莫过于 1999 年 1 月 1 日开通的上海书城网上书店和3 月 9 日正式营业的北京图书大厦网上书店。现在,到底有多少中文图书的网上书店,恐怕很难统计完整。为了说明这一点,在搜狐网站上,用关键词“网上书店”进行查询,并对结果作去重处理后,发现从事网上中文图书销售的站点共有61 个,其中属于新华书店系统的网站有5 个,占 8.2%;出版社办的有 3 个,占 4.9%
9、;提供书目在 9 万种以上的有 6 个,占 9.8%。另外,专业性图书网站 8 个,如计算机书店、工具书店、医药书店、法律书店、青少年书店等。从这些统计数据中,我们多少也能看出国内网上书店竞争的激烈性。在中国,未来网上书店的发展所必须解决的几个关键性问题是:一是提供普遍的信用卡网上支付,制定方便的银行间的结算问题;二是成立统一的、最具权威的CA 认证机构,从而解决安全问题;三是构建高效率的图书配送系统。在解决好这些问题的前提下才能保证网上书店的蓬勃发展。下面将提出几种未来可能的网上书店的经营模式:一是以售书盈利为目的的网上书店,它利用网络提供大量的书目,读者可以进行查询、选择,然后在网上直接订
10、购,结算方式以信用卡结算为主,也可采用邮购、电汇等方式,书店确认读者已付款后,就通过自己的配送体系,把图书送到读者手中,这是最简单、最直观的网上书店经营模式;二是以提供信息服务为主的网上书店,它以图书销售为核心,开展各种类型的信息服务,图书销售并不是他的全部目标,精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 23 页个人资料整理仅限学习使用而是通过信息服务把读者的注意力集中过来,以服务为纽带,把作者、出版商、书商、书店、读者紧密地联系起来;三是以专业性为特点的网上书店,它针对实力较弱的经营者,采取“以专取胜” 可以是销售内容、销售对象
11、、书籍类型、出版单位等等)的策略;四是以电子版图书为主的网上书店,电子版图书按载体可以分为两大类,一种是有具体载体的,如光盘版,另一种是以网络为载体的网络版。随着网络的普及和其它信息技术的发展,图书发行电子化将是一个必然趋势,尤其是网络版的图书,由于它可以在网络上的方便、快速的传递,省去了图书配送这一重要而又难度很大的环节。为解决这类图书的阅读问题,国外一些公司已经研制出了电子图书阅读器,例如,SoftBook Press 公司的SoftBook。但是这些阅读器都还是针对英文的,中文电子图书阅读器还是一个空白。目前,中国的第一笔电子版图书交易在网上完成,相信将来随着电子版图书发行量的增大,这种
12、销售方式也将成为一种趋势,并有望成为销售盈利的突破口。随着我国产业政策、物流产业、互联网普及程度、社会信用以及网上银行等各项影响网上书店发展的社会外部环境因素的调整完善,可以确定网上书店还有巨大的发展空间,其方便快捷,价格低廉,资源丰富,不受时间地域限制的优越性将得到越来越充分地发挥。此外,随着电子技术和网络技术向出版领域的全面渗透,网络出版物正蓬勃发展起来。E-book 可实现强大的数字化在线图书馆功能,它将和普通图书一样,可以通过网站提供超大图书数据库和便利检索手段,实现图书借阅,图书的查询和下载图书等。随着数字化阅读的革命,网络出版物必将占据部分的图书市场,网上书店凭借自身优势,对于电子
13、图书的销售也应该步入正轨,给电子图书开辟专门的销售板块和促销手段,与电子图书出版商合作,大力推进我国数字时代的图书发展。2. 系统规划与分析2.1系统开发规划网上书店管理系统是一个典型的JSP 数据库开发应用程序。由前台管理和后台网站管理两部分组成。前台管理部分主要包括图书展台、购物车、会员管理及订单查询、图书查询等功能;后台管理部分主要对书城内的一些基础数据进行有效管理,包括后台登陆、图书设置、会员设置、订单设置、后台管理员设置等功能。2.1.1 系统开发计划网上书店系统是一个中小型的企业电子商务购物系统,它需要管理部门的支持与监督,系统分析师对企业及市场的需求准确分析,编程开发人员的设计实
14、现,以及用户的反馈,其中,各部门的人员须交流,配合其他部门的人员完成系统。系统的开发生命周期分为:系统规划,系统分析,系统设计,系统实施,系统运行;其中,各个阶段的工作量分别为:系统规划9% ),系统分析 15% ),系统设计 20% ),系统实施50% ),系统运行 6% )。且整个系统的开发持续时间预计为一个月。由于系统是在分析旧有系统上,根据用户需求进行改进的新系统。故在经费方面开销不大,预计 2000 员即可完成。主要购买所需的硬件设施及软件资源等如网络交换机等等)。同时,相关的管理部门应对系统的开发计划进行评审,调查用户需求、员工反馈,对系统开发计划及时作出相应地调整。2.1.2 网
15、站设计目标根据网上书店的基本需求,在设计书店网页时需要达到的目标是:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 23 页个人资料整理仅限学习使用图书查询:当客户进入网上书店时,应该在主页面中分类显示最新的书目信息,以供客户选择最新图书,同时也应该提供按照图书名称,或者作者信息快速查询所需书目信息的功能。购物车管理:当客户选择购买某图书产品时,应该能够将对应图书信息,如:价格、数量记录到对应的购物车中,并允许客户返回到书目查询页面,选择其他商品,并添加到购物车中,当对应的购物订单生成后,应该能够自动清除已生成订单的购物车中的信息。订单
16、处理:对应客户购买图书商品信息的需求,在确定了所购图书商品的价格、数量等信息后,提示用户选择对应的送货方式及付款方式,最终生成对应的订单记录,以便于网站配货人员依据订单信息进行后续的出货、送货的处理。会员注册:为了能够实现图书商品的购买,需要管理客户相关的联系方式、送货地点等相关的信息。顾客留言:通过留言板用户可以留言,给用户和管理员提供了一种沟通方式以便用户能很好地了解购买商品的情况。2.2系统需求分析如今发展最快的,最时髦的,恐怕就是网络了。网络给人们带来了实惠、虚拟、幻化,也给文学和图书带来了广阔的生存空间。盗版者利用科学技术,瞄准正版图书与盗版书的差价谋取暴利。网络书店的兴起无疑给盗版
17、商以有力的打击,因为发达的网络可以直接疏通图书的发行渠道,缩短了网上购书者与出版商的距离,给图书消费者以轻松、便宜的享受。传统书店内的图书摆放面积是有限的,每增加一本书其成本都在以一定比例增加,而网络书店解决了存储空间问题,每增加一本书成本几乎为零。综合性的网上书店设计各种各类的图书,提供订购的书目信息达上万、几十万条,而图书出版的时间有最新出版的,也有几十年前的,这是传统书店难以做到的。网上书店是24 小时向全球各地的用户提供网上服务的,用户借助网络可以漫游世界各地的图书海洋中,随时选书、下订单。中国人不出国可以去到美国最大的Amazon网上书店,广东人可以不出省渠道北京图书大厦http:/
18、www.BJBB.com )进行异地购书。网上书店的栏目丰富:特价书、书业视窗、销售排行、新品上架、最新推荐等,动态地向用户提供各种信息,让用户了解书市的最新情况。另外,每种被检索出来的图书也有详尽的介绍,如基本书目信息、封面、目次、内容提要、书评等,这些信息都有助于用户选书。网上书店主要提供分类和自定义搜索的方式对图书或其他商品音像制品、电脑软件等)进行查找。分类一般是结合中图法按用户的阅读习惯或兴趣分类,同一类的图书相对集中在一起,方便用户在同类图书中挑选出高质量的图书。自定义搜索是用户根据自己所需的图书以主题、书名、著者、出版社等信息作为检索点对图书或其他商品进行一般搜索,如果希望检索结
19、果更准确就使用高级检索同时使用几个检索点查找。这种方法相对于其他购书方式来说找书更快捷。由于抛弃了传统书店运作的所需的服务设施和多重环节,在网上书店买书一般要比传统书店便宜。综合上述网上书店的优势,所以开发网上书店的信息化系统是很有必要的。2.2.1 系统需求概述电子商务网上书店的需求主要从两方面分析,这两方面主要是网上书店的用户和后台管理人员。用户的需求主要是查询网上书店所存的图书、查看图书详情、个人购买情况、历史订单记精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 23 页个人资料整理仅限学习使用录及个人信息的修改。后台管理人员的需
20、求主要是对图书类型进行管理包括增、删、改、查)、管理订单及管理网上用户。用户进入网站后可直接查看图书情况。如果图书购买者根据用户名和密码登录系统,还可以进行用户购书情况的查询和维护部分用户信息。一般情况下,图书购买者只应该查询和维护用户的借书情况和个人信息,若查询和维护其他购买者的购书情况和个人信息,就要知道其他购物者的用户名和密码,这些是很难得到的,特别是密码,所以不但满足了图书购买者的要求,还保护了图书购买者的个人隐私。后台管理人员能实现对图书信息和用户信息管理、统计查看及维护。后台管理人员可以浏览、添加、删除统计用户的基本信息;浏览、查询、添加、删除、修改、统计图书的基本信息;但是,删除
21、某类图书类型时,要实现对该类所有图书的级联删除;删除某条图书购买者基本信息记录时,应实现对该图书订单记录的级联删除。2.2.2 网站基本要求根据对系统需求和网页设计目标的分析,网上书店系统主要实现用户登录网站后,购买图书的一系列功能。用户购买的商品都会添加到购物车,如果用户不想购买该商品或想更改该商品的数量,这些操作都可在购物车里完成。为了达到一系列要求,必须使得网上书店系统执行速度快,稳定性强。而网上书店系统采用的是 JSP 、servlet 、Javabean 和 JDBC等技术,故可达到这些要求。作为一种开放的跨平台的结构,使得web 服务器、操作平台以及其他的组件很容易升级或切换,且不
22、会影响基本程序,能够适应系统的不断变化和发展。2.3系统的可行性分析2.3.1 技术可行性分析信息系统的开发方式有:自行开发、IT 外包与委托开发、联合开发和软件采购四种。企业可以根据自身的特点和要求,选择对企业发展最有利的开发方式。如果企业内部由高素质的开发队伍,就可以选择自行开发或联合开发;如果企业对系统开发不熟悉,也可以采用IT 外包与委托开发方式来完成系统开发。由于网上书店信息系统是在旧有系统上做一些更新的中小型电子商务购物系统,故可由企业的软件开发人员自行开发完成,即在技术方面是可行的。2.3.2 经济可行性分析系统开发人力投入包括系统分析师、具体管理人员、编程人员以及用户,而网上书
23、店信息系统是在原有系统基础上根据新的市场需求和技术更新作一些改动的小型购物系统,故在人力投入方面是可行的;在财力和物力方面,由于旧有系统已经作了较为完备的开发,故在开发新系统时只需投入较少的财力物力,节省了企业的成本,即在这两方面也是可行的。根据系统的总体需求分析可知其市场需求量大,具有可观的市场前景。故其开发后可能带来的经济效益也是可观的。2.3.3 操作可行性分析系统是基于 Internet/Intranet及 Web技术,建立以Browser/Server为结构模式,以数据库为后台核心应用,以服务、销售为目的的信息平台。而现有的windows 操作系统及设计软件等能满足该系统的运行。故其
24、在操作方面是可行的。系统是一个电子商务网站,所以操作简易,用户购书不需要了解整个书店的工作流程,只精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 23 页个人资料整理仅限学习使用需要按照提示一步步操作即可完成购书等其他活动,故在用户使用操作方面也是可行的2.4系统的开发工具分析2.4.1 JSP与 Hibernate编程技术在传统的网页HTML文件*.htm,*.html)中加入Java 程序片段 Sriptlet)和 JSP 标记tag),就构成了 JSP网页*.jsp )。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序
25、片段,然后将执行结果以HTML格式返回给用户。程序片段可以操作数据库、重新定向网页以及发送E-mail 等。JSP基于强大的 Java 语言,具有良好的伸缩性,在网络数据库应用开发领域具有得天独厚的优势,而且它在多方面加速了动态Web页面的开发,譬如,将内容的生成和显示进行分离:强调可重用的、跨平台的组件来执行应用程序所要求的更为复杂的处理;采用标识简化页面开发;拥有Java 语言“一次编写,各处运行”的特点等。Hibernate 是一种比较新的 O/R映射框架,它帮助基于普通的Java 对象模型的持久对象的创建,从而允许持久对象拥有复杂的结构如混合类型、集合和属性,还可以拥有用户自定义的类型
26、,使得这些持久对象可以有效地反映出底层数据库模式的复杂结构。Hibernate依赖“运行期反射”在运行期收集关于对象和它们相应的数据库映射的信息,这就废除了持久层内对象数据库映射的硬编码。这样,Hibernate使得持久层以该层代码的最小修改就能适应底层数据库模式的任何未知变化。反射是核心Java 的一个特征,它促使Java 代码发现关于所装载的类的域、方法和构造器。反射允许使用反射的予、方法和构造器,在安全限制内,运行对象上的底层配对物。为了提高效率,Hibernate还包括了一些策略,如与数据库交互时的多重最优化,包括对象的缓存、有效外部连接的获取、必要时SQL语句的执行等。通过以上的优化
27、策略采用 Hibernate 的过程开销比 JDBC少 10% 。2.4.2 MyEclipse 开发工具MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合, MyEclipse 的功能非常强大,包括了完备的编码、测试、和发布功能,支持也十分广泛,尤其是对各种开元产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC 数据库链接工具等多项功能。可以说MyEclipse 几乎囊括了目前所有主流开元产品的专属eclipse开发工具。在结构上
28、, MyEclipse 的特征可以被分为七类: JavaEE 模型;Web开发工具; EJB 开发工具;应用程序服务器的连接器;JavaEE工程部署服务;数据库服务;MyEclipse 整合帮助。对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。 MyEclipse 结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。在功能上, MyEclipse的优点有以下几类:自动提示功能可以节省编程时间,比如有些繁杂的方法只记得一些大概用到的时候可以用MyEclipse 的自动提示功能,这样就省下了查找的时间;在开发一些应
29、用程序方面,MyEclipse 的自动编译功能,可以直接运行程序;在开发一些网络应用程序时,MyEclipse自身集成了一些网络编程中常用到的服务,如Tomcat、Oracle 、MySQL 等等,运用MyEclipse 的自动布置的功能可以很好的将自己的程序与以上工具连接,省去了手动布置的烦恼。2.4.3 MySQL 数据库MySQL是一种的关系型数据库管理系统RDBMS), MySQL数据库系统使用最常用的数据库管理精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 23 页个人资料整理仅限学习使用语言- 结构化查询语言 SQL )进行
30、数据库管理。由于 MySQL 是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL 因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL 是管理内容最好的选择。MySQL 关系型数据库于1998年 1 月发行第一个版本。它使用系统核心提供的多线程机制提供完全的多线程运行模式充分利用CPU资源,提供了面向C、C+ 、Eiffel、Java、Perl 、PHP 、Python 以及 Tcl 等编程语言的编程接口 APIs),支持多种字段类型并且提供了完整的操作符支持查询中的SELE
31、CT 和 WHERE 操作。MySQL 的特性有以下几点:使用C 和 C+ 编写,并使用了多种编译器进行测试,保证源代码的可移植性;既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库嵌入到其他的软件中提供语言支持,常见的编码如中文的GB2312 、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名;提供TCP/IP、ODBC 和 JDBC等多种数据库连接途径;提供用于管理、检查、优化数据库操作的管理工具。目前 MySQL 被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开发源码这一特性,许多中小型网站为了降低网站
32、总体拥有成本而选择了MySQL 作为网站数据库。2.5 组织结构与功能分析系统以 MySQL 为数据库开发平台,以Tomcat 网络信息服务作为应用服务器,采用基于服务器端的JSP 、Java 的组件 JavaBean,以及网页编程语言HTML构建的一个小型动态商务网站。2.5.1 业务流程分析网上书店业务的整体业务流程图如图2-1 所示:会员用 户 终 端 接 入Iternet 进入网上书店寻找图书供 应商企业 商户)终端进入网上书店管理系统发货已发物流机构售后服务送货不合适浏览图书发货凭证精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,
33、共 23 页个人资料整理仅限学习使用图 2-1 网上书店整体业务流程图网上书店系统主要实现用户登录网站后,购买图示的一系列功能。用户购买商品的一系列操作都将在购物车里完成。购物车的业务流程图如图2-2 所示:下单合适否继续购物付款结账离开发货通知银行精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 23 页个人资料整理仅限学习使用图 2-2 购物车业务流程图2.5.2 数据流程分析数据流程分析主要把数据在系统中流动过程抽象出来,专门考虑业务处理中的数据处理模式。其顶层的数据流程图如图2-3 所示。由于系统的数据模块较多,下面仅以购物车管理
34、模块为例来进行编制,如图2-4 所示:图 2-4 购物车数据流程图2.5.3 数据字典 数据结构说明根据分析,为满足系统要求得出数据结构如下表所示);表 2-1 网上书店管理系统)整体数据结构说明查询否审核通过会员查看购物车修改商品数量删除商品下订单购物订单继续购物生成订单订单供应商用户向购物车添加商品库存退书信息缺书单发货通知退货单订单签收货物发货单客户网上书店销售系统管理员发货员图 2-3 顶层数据流程图精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 23 页个人资料整理仅限学习使用表 2-2 网上书店管理系统)购物车数据结构说明
35、订单标识客户情况商品情况订单的 IDOrderID )订单的日期OrderDate )客户的编号ProfileID)书的编号 ProductID )书的名称 ProductName) 处理逻辑描述表 2-3 网上书店管理系统)处理逻辑描述处理编号处理功能处理过程PR-1 客户购物设计的功能模块商品基本信息模块、客户基本信息模块、客户购物车基本信息模块、客户订单信息模块、网上支付基本信息模块、交易基本信息模块;先确定购物所涉及的功能模块;然后,确定数据流向;最后显示购物情况。3系统设计采用结构化生命周期的设计方法,针对新系统的目标,依据系统分析阶段所建立的逻辑模型,确定新系统的软件总体结构与功能
36、模块之间的关系,设计系统实现的物理方案,即系统的物理模型。3.1 系统总体结构设计系统的总体结构设计中最重要的就是系统的模块化。模块化是指解决一个复杂问题时自上向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。3.1.1 系统的模块设计将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽量保持其独立性。也就是说,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单,即尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
37、系统采用结构化设计思想。首先将整个系统分为两大块,即用户使用的前台和管理员使用的后台,再将这两个部分划分为几个小模块。系统的总体功能模块设计图如图3-1 所示,用户使用的前台部分功能模块设计图如图3-2 所示:数 据 结构编号数据结构名称数 据 结构含义组成DS00-01DS00-02DS00-03Book Customer Operator 书籍客户管理员ProductID,ProductName,Price,Supplier,Author,ProductDescriptionProfileID,Password,UserName,UserSex,UserID,Birthday,UserAd
38、dress,UserCode,Phone,MobilePhone,E-mail,RegisttimeProfileID,Password,WorkerName,WorkerSex,WorkerID,Birthday,WorkerAddress,WorkerCode,Phone,MobilePhone,E-mail精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 23 页个人资料整理仅限学习使用图 3-1 系统总体功能模块设计图图 3-2 前台部分功能模块设计图前台购物系统模块:用户信息管理子模块包括用户登录、更改用户信息、新用户注册;购
39、物车子模块包括向购物车添加商品、删除商品、更改商品数量;订单管理子模块包括生成订单、用户查询订单。后台管理系统模块:用户管理子模块包括查看用户信息、删除用户;商品管理子模块包括对商品的查看、增加、删除、修改以及对商品类型的查看、增加、删除、修改;订单管理子模块包括查看未处理订单、处理订单;管理员管理子模块包括管理员登陆、更改信息、注册新管理员。3.1.2 系统的功能设计网上书店系统前台功能后台功能用户管理购物车管理订单管理个人资料管理顾客留言管理员身份验证商品管理处理订单用户信息管理用户登录在线购书查 看 购 物车查 看 订单信息图 书 查询购买查 看 图 书详细信息删除已购的图书提交购物车清
40、空购物车继续购书查看订单详细信息购买查看图书详细信息购买在 线 购书修改购买数量精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 23 页个人资料整理仅限学习使用网上书店信息系统按系统逻辑功能模块可分为用户管理、商品管理、商品浏览、商品查询、购物车管理、订单处理六大功能,其主要模块的功能说明如表3-1 所示:表 3-1 网上书店信息系统的功能概述功能模块功能特点用户管理管理所有网上书店的用户信息。主要功能包括添加、删除、修改以及查找用户信息。系统要求对客户的账户密码进行加密处理保护客户的私人信息,客户可以对自己的喜人信息进行维护,如果客
41、户不慎丢失密码可以通过他的 E-mail取回。商品管理负责管理本系统所销售的所有图书信息。主要功能包括添加、删除、修改以及查找信息,并包括对书籍高级查询子模块。商品查询用户管理模块和商品管理模块种豆提供了商品查询模块。对于商品查询,系统提供多条件组合查询,包括按书类、书名、作者、出版社进行查询。商品浏览系统在首页提供有限的最新图书信息,如果读者需要按分类了解图书信息,要求系统为每类图书提供分页,客户可以选择分类扩展链接,并且客户可以针对某项具体的书目查看更详细的信息,以便决定是否购买或者放入购物车以供将来选择参考。订单处理根据客户购物车中的信息,以及客户所选择的送货方式和付款方式,连同客户对应
42、的个人信息生成订单,以便于后续进行送货处理。购 物 车 管理用户可以在这里建立他们的订单,只要选择各种自己需要的商品,并将它们添加到自己的预购信息栏中即可。还提供对购买物品进行删除、修改数量的功能。3.2 输入输出设计权限管理模块输入输出设计如下:输入:用户名和密码,且“二者不能为空”,“密码不能少于六位”的动态提示。输出:主控制平台商品管理模块输入输出设计如下:输入:商品编号、商品名称、商品类别、商品介绍、发布时间、图片、库存数量、是否推荐、物品价格。输出:对图书信息表进行更新。用户管理模块输入输出设计如下:输入:会员类型用户编号、用户姓名、真实姓名、密码、联系电话、E-mail 、通信地址
43、)。输出:对用户资料表进行更新。对用户信息的添加、修改、删除;用户类型的设置;用户资料的查询;用户信息的清单打印。订单处理模块输入输出设计如下:输入:订单编号、用户编号、物品编号、邮寄地址、订购数量、付款方式、出售单价、邮寄价格、邮寄方式、订购状态、订购时间。输出:可按订单状态、单号、客户等信息,任意组合查询出订单信息,并跟踪每一笔订单的详细信息。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 23 页个人资料整理仅限学习使用留言板管理模块输入输出设计如下:输入:主题编号、主题名称、留言内容、作者姓名、E-mial 、发布时间。输出:
44、可定期查看顾客留言,以便对商品信息表及时进行更新。3.3 界面设计在人机对话设计设计方面:当用户操作错误时,系统向用户发出提示和警告性的信息;为了操作使用方便,常常把操作提示和要点同时显示在屏幕的旁边,当系统执行用户操作指令遇到两种以上的可能时,系统提醒用户进一步地说明;在系统运行时首先接收用户对第i 句会话的回答,然后执行相应的判断处理,如果有必要,系统通过简单推理再从会话文件中调出相应内容的下一句会话,并显示在屏幕上,依次反复,直到最终问题得到满意的解决。在出错提示设计方面:模块的出错提示皆用动态提示,即在用户填入数据还没有提交时已经提示错误,出错都将以弹出窗口的形式提示。在界面的集成设计
45、方面:用户界面设计是系统与用户之间的借口,也是控制和选择信息输入/ 输出的主要途径。菜单方式:采用下拉式、弹出式、按钮等多种形式的菜单。在同一层菜单选择中,功能尽可能多,而进入最终操作的层次尽可能少;权限管理:对一些数据设置权限管理,不同类型的用户拥有的权限不同,进入系统后对系统的操作方式也不同。3.4 数据库设计3.4.1 数据库分析大多数网络应用系统都需要后台数据库的支持,动态网站应用程序开发过程中很关键的技术就是动态网站数据库的设计与编程,包括数据库的设计、数据源的配置与连接、数据源的操作、数据的获取、 SQL查询语言的使用等。利用数据库可以管理对后台操作,例如:修改、添加、删除等,对管
46、理员来说更加方便、快捷,同样也可以避免非法用户对网站的操作,从而保证了网站的安全性。以 Microsoft WinXP为平台,提供安全、稳定的运行环境;采用MySQL小型数据库+Navicat Lite使其界面化、易于操作,保证系统数据安全。3.4.2 概念数据模型Memberlevel LoginName ID 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 23 页个人资料整理仅限学习使用图 3-3 网上书店系统总体业务管理E-R 模型3.4.3 物理数据模型物理数据模型的设计是指数据库在物理设备上的存储结构和存储方法。数据库物理
47、设计的任务是,为每个关系模式选择合适的存储结构和存取路径。数据库物理设计的目标是:提高数据库的性能,特别是满足主要应用的性能要求;有效地利用存储空间。数据表项的设计 : 表 3-2 用户资料表字段标识字段名称数据类型字段长度主键 / 外键ID Memberlevel LoginName LoginPwd MemberName Phone Address Zip RegDate 用户编号会员级别用户名密码真实姓名电话地址邮编注册时间Int Int Char Char Char Char Varchar Char Datetime 4 4 12 12 20 15 100 10 - 主键n n n
48、n n 1 n n n 1 n 查询购买构成提交订单查改管理员管理查、删n Email ID AdminType AdminName LoginName LoginPwd SPrice MerDesc Member Cart OrderDate OrderNO 图书Address Phone LoginPwd 用户ID MerName MerModel Price Membername Picture 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 23 页个人资料整理仅限学习使用LastDate LoginTimes EMail 最
49、后登录时间登陆次数电子信箱Datetime Int Varchar - 4 100 表 3-3 管理员资料表字段标识字段名称数据类型字段长度主键 / 外键ID AdminType AdminName LoginName LoginPwd 管理员编号管理员类别管理员名称登录名密码Int Int Char Char Char 4 4 12 12 12 主键表 3-4 图书资料表字段标识字段名称数据类型字段长度主键 / 外键ID Category MerName Price SPrice Picture MerDesc Manufacturer LeaveFactoryDate 商品编号商品类别编号
50、商品名称商品价格出售价格商品图片商品描述出版社出版日期Int Int Char Decimal Decimal Varchar Text Char Datetime 4 4 40 8,2 8,2 100 - 60 - 主键表 3-5 订单管理资料表字段标识字段名称数据类型字段长度主键 / 外键精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共 23 页个人资料整理仅限学习使用ID Member Cart OrderNO OrderDate OrderStstus 订单编号会员编号购物车编号订单条码下订日期订单状态Int Int Int C
51、har Datetime Int 4 4 4 20 - 4 主键3.5 安全设计系统安全是指计算机的硬件软件和数据受到保护,数据不因偶然和恶意的原因而遭到破坏、更改和显露,系统连续正常运行。系统安全设计的主要内容包括:系统的数据安全,即数据安全和数据库系统的安全,它们是管理信息系统中最重要的安全内容;网络和系统的运行安全。3.5.1 数据安全数据安全主要从终端用户和系统管理员两个方面进行设计。终端用户:首先是权限模块的设置,在商城首页有提示用户登录或注册的模块,只有当顾客注册后,才能进行网上书城的一系列购买、查询等的操作;注册成功后,网站会提示用户转到首页,重新进行刚刚注册是的用户名和密码的输
52、入进行登录,防止数据的恶意窃取和丢失。同时,对不同的级别用户有不同的购买权限,例如,普通会员只能享受商品的正常购买价格,钻石会员能享受特殊会员价等,普通会员不能而已篡改自己的会员级别,不能和他人共享自己的数据信息,保证了不同级别会员的数据安全性。系统管理员:主要给DBMS 提供安全功能。如触发器功能,数据库加锁功能;给重要的数据项加密,如可对前台用户的注册基本信息进行数据加密,防止黑客入侵恶意窃取,保护用户个人隐私;同时,不同的管理员有不同的权限,商品管理员、会员管理员、订单管理员、系统管理员,每一个管理员只能管理其所在方面的数据,保证了数据安全的独立性,防治管理员数据造假,侵害用户权益。3.
53、5.2 网络安全网络的安全措施主要有以下几种:物理措施:例如,保护网络关键设备如交换机等),采取防辐射、防火以及安装不间断电源UPS )等措施。访问控制:对用户访问网站的权限进行严格的认证和控制。例如,进行用户身份认证,对口令加密、更新和鉴别,设置用户访问目录和文件的权限等。数据加密:加密是保护数据安全的重要手段。加密的作用是保障信息被人截取后不能读懂其含义。而在系统设计过程中,由于数据加密技术 NOTNULL AUTO_INCREMENT, AdminType int(4 DEFAULTNULL , AdminName char(12 DEFAULTNULL , LoginName char
54、(12 DEFAULTNULL , LoginPwd char(12 DEFAULTNULL , 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 18 页,共 23 页个人资料整理仅限学习使用PRIMARYKEY (ID ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=gb2312。- - Table structure for cart- -DROPTABLEIFEXISTS cart。CREATETABLE cart ( ID int(4 NOTNULL AUTO_INCREMENT, Member
55、 int(4 NOTNULL , Money decimal(9,2 DEFAULTNULL , CartStatus int(4 DEFAULTNULL , PRIMARYKEY (ID ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=gb2312。- - Table structure for cartselectedmer- -DROPTABLEIFEXISTS cartselectedmer 。CREATETABLE cartselectedmer ( ID int(4 NOTNULL AUTO_INCREMENT, Cart int(4
56、NOTNULL , Merchandise int(4 NOTNULL , Number int(4 NOTNULLDEFAULT 1, Price decimal(8,2 NOTNULLDEFAULT 0.00, Money decimal(9,2 NOTNULLDEFAULT 0.00, PRIMARYKEY (ID ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=gb2312。- - Table structure for category- -DROPTABLEIFEXISTS category。CREATETABLE category
57、( ID int(4 NOTNULL AUTO_INCREMENT, CateName char(40 DEFAULTNULL , CateDesc text, PRIMARYKEY (ID ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=gb2312。- - Table structure for leaveword- -DROPTABLEIFEXISTS leaveword。CREATETABLE leaveword ( ID int(4 NOTNULL AUTO_INCREMENT, Member int(4 NOTNULL , Admin
58、int(4 DEFAULTNULL , Title char(60 DEFAULTNULL , Content text, LeaveDate datetime DEFAULTNULL , AnswerContent text, AnswerDate datetime DEFAULTNULL , PRIMARYKEY (ID ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=gb2312。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 19 页,共 23 页个人资料整理仅限学习使用- - Table st
59、ructure for member- -DROPTABLEIFEXISTS member。CREATETABLE member ( ID int(4 NOTNULL AUTO_INCREMENT, Memberlevel int(4 NOTNULL , LoginName char(12 DEFAULTNULL , LoginPwd char(12 DEFAULTNULL , MemberName char(20 DEFAULTNULL , Phone char(15 DEFAULTNULL , Address varchar(100 DEFAULTNULL , Zip char(10 DE
60、FAULTNULL , RegDate datetime DEFAULTNULL , LastDate datetime DEFAULTNULL , LoginTimes int(4 DEFAULTNULL , EMail varchar(100 DEFAULTNULL , PRIMARYKEY (ID ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=gb2312。- - Table structure for memberlevel- -DROPTABLEIFEXISTS memberlevel。CREATETABLE memberlevel
61、( ID int(4 NOTNULL AUTO_INCREMENT, LevelName char(20 DEFAULTNULL , Favourable int(4 DEFAULTNULL , PRIMARYKEY (ID ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=gb2312。- - Table structure for merchandise- -DROPTABLEIFEXISTS merchandise 。CREATETABLE merchandise ( ID int(4 NOTNULL AUTO_INCREMENT, Categ
62、ory int(4 NOTNULL , MerName char(40 DEFAULTNULL , Price decimal(8,2 DEFAULTNULL , SPrice decimal(8,2 DEFAULTNULL , MerModel char(40 DEFAULTNULL , Picture varchar(100 DEFAULTNULL , MerDesc text, Manufacturer char(60 DEFAULTNULL , LeaveFactoryDate datetime DEFAULTNULL , Special int(4 DEFAULTNULL , PRI
63、MARYKEY (ID ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=gb2312。- - Table structure for orders- -DROPTABLEIFEXISTS orders。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 20 页,共 23 页个人资料整理仅限学习使用CREATETABLE orders ( ID int(4 NOTNULL AUTO_INCREMENT, Member int(4 NOTNULL , Cart int(4 NOTNULL , OrderNO
64、 char(20 DEFAULTNULL , OrderDate datetime DEFAULTNULL , OrderStatus int(4 DEFAULTNULL , PRIMARYKEY (ID ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=gb2312。使用 JSP 连接数据库:在系统中需要多次连接数据库而且这种连接是一项很耗资源的操作,因此,在系统中将数据库连接的部分写成了一个JavaBean ,文件名为 AjaxBean.java,关键代码如下:/* 供JSON-RPC组件远程调用的 AjaxBean */publicclass
65、AjaxBean extends BaseLog /* 取得商品分类列表 */public String getCategory( String options = null。MerService service = new MerServiceImpl(。try List list = service.browseCategory(。Category cate = null。int i = 0。if (list!=null options = new Stringlist.size(2 。Iterator it = list.iterator(。while(it.hasNext( cate
66、= (Categoryit.next(。optionsi0 =cate.getId(.toString(。optionsi1 =cate.getCateName(.trim(。i+。 else options = new String12 。options00 =0。options01 =无商品分类 。 catch(Exception ex logger.info(在执行 AjaxBean类中的 getCategory 方法时出错: n。ex.printStackTrace(。 returnoptions。 /* 取得会员级别 */public String getMemberLevel( S
67、tring options = null。MemService service = new MemServiceImpl(。try List list = service.browseMemberLevel(。Memberlevel ml = null。int i = 0。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 21 页,共 23 页个人资料整理仅限学习使用if (list!=null options = new Stringlist.size(2 。Iterator it = list.iterator(。while(it.hasNext
68、( ml = (Memberlevelit.next(。optionsi0 =ml.getId(.toString( 。optionsi1 =ml.getLevelName(.trim( 。i+。 else options =new String12 。options00 =0。options01 =无会员级别 。 catch(Exception ex logger.info(在执行 AjaxBean类中的 getMemberLevel方法时出错: n。ex.printStackTrace(。 returnoptions。 /* 注册登录帐号有效性验证 */publicbooleanchkLo
69、ginName(String loginName MemService service = new MemServiceImpl(。boolean result = false。try result = service.chkLoginName(loginName 。catch(Exception ex logger.info(在执行 AjaxBean类中的 chkLoginName方法时出错: n。ex.printStackTrace(。 return result。 /* 修改选购商品数量 */publicboolean modiCart(int id,int number CartSer
70、vice service = new CartServiceImpl(。boolean result = false。try result = service.modiCart(Integer. valueOf(id, number。catch(Exception ex logger.info(在执行 AjaxBean类中的 modiCart方法时出错: n。ex.printStackTrace(。 returnresult。 /* 调整会员级别 */publicbooleanupdateLevel(Integer id,Integer levelIdMemService service =
71、new MemServiceImpl(。boolean result = false。try 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 22 页,共 23 页个人资料整理仅限学习使用Member member = service.loadMember(id 。Memberlevel level = service.loadMemberLevel(levelId。member.setMemberlevel(level 。service.updateMember(member 。result = true。catch(Exception ex logger.info(在执行 AjaxBean类中的 updateLevel方法时出错: n。ex.printStackTrace(。 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 23 页,共 23 页