基于MVC模式的网上书城系统的设计与实现



  随着Internet的普及,电子商务正以锐不可挡之势快速兴起,越来越多的人倾向于网上购物,正是在这种情形下,网上商城应运而生,它是图书行业发展的必然结果。这种新型的图书销售方式,与传统的实体书店销售方式相比拥有许多优势如降低成本、购买图书不受时间和空间的限制、客户能及时掌握所需图书销售信息等。正是由于这些优势,网上购书已成为一种潮流,而这也促使各大网上书城如亚马逊、当当网的快速发展。本文设计实现了一个能满足用户基本购书需求的应用系统,该系统也能满足管理员对书籍的有效管理。

  1 系统架构

  本系统采用三层架构的MVC设计模式,其有3个核心组件:模型(Model)、视图(View)、控制器(Controller)。视图是用户看到并与之交互的界面,主要涉及将系统处理的结果显示给用户;模型表示业务数据和业务逻辑,负责数据的存储,可以为多个视图所共享;控制器接受用户的输入并调用模型和视图去完成用户的请求。所以当点击Web页面中的超链接和提交表单时,控制器本身不输出任何东西和做任何的处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。工作流程如图1所示:

  2 系统设计

  2.1 系统主要的功能模块

  网上书城系统按功能分为两部分:从客户角度看,需要实现前台网上订购功能;从商家角度看,需要实现后台系统管理功能。前后台功能模块分别如图2、3所示:

  2.2 数据库设计

  MySQL数据库具有体积小、速度快、成本低等优点而被广泛应用在Internet上的中小型网站上。对于开发网上书城系统,MySQL完全可以满足我们的要求。

  2.2.1 系统中所涉及的实体及其联系

  本系统主要有6个实体:用户user、图书分类category、图书book、购物车cart、订单order、管理员admin。系统E-R模型如图4所示:

  2.2.2 数据库表的设计

  数据库表设计主要是把系统E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。它包括数据项、记录及记录间的联系、安全性和一致性约束等等。导出的逻辑结构是否与概念模式一致,从功能和性能上是否满足用户的要求,要进行模式评价。本系统数

  据库总共有七张表,分别是用户信息表user、图书分类表category、图书信息表book、图书购物项表cartitem、图书订单项表orderitem、图书订单表order、后台管理员表admin。由于篇幅所限,仅列出如下1张表:

  (1)图书订单表order

  字段名称 数据类型 主键 能否为空 说明

  oid char(32) Y N 订单id

  ordertime char(19) N N 下单时间

  total decimal(10,2) N N 合计金额

  status int N N 订单状态

  address varchar(100) N N 收货地址

  uid char(32) N N 用户id

  3 开发过程中的关键技术

  为了给用户提供更好的体验,在用户注册页面中采用Ajax技术校验用户名与Email是否已被使用是十分必要的。以下程序为用户名校验的一小段js代码

  4 结束语

  网上书城作为电子商务的一个典型应用,弥补了传统书店的诸多不足之处,有着很好的发展前景。本系统运用MVC模式实现了网上购书功能,基本上可以满足广大客户的购书需求。MVC开发模式中的每层各司其职,互不干涉,一旦哪一层的需求发生了变化,就只需要更改相应的层中的代码而不会影响到其它层中的代码。此外由于系统分成了三层,能更好的实现开发中的分工以提高工作效率。因此运用此模式对其它电子商务软件的开发具有一定实际应用价值。