序 号 1 2 字 段 Order_id D_name 描 述 类型和长度 主 键 可 空 默认值 是 否 否 否 无 无 自动编号 Mediumint(8) 用户联系姓名 Varchar(100) 3 4 5 cid D_street_address D_tel_mobile 会员id Int(10) 否 否 否 否 否 否 无 无 无 会员地址 Varchar(100) 会员联系方式 Varchar(100) 6 7 Orders_status Shipping_method 订单状态 Varchar(100) 邮递方式 Int(10) 否 否 否 否 无 无 表3-6订单产品信息关联表(orders_products)结构
序 号 1 2 字 段 opid Orderd_id 描 述 自动编号 于orders表关联id 类型和长度 Mediumint(8) Int(10) 主 键 可 空 默认值 是 否 否 否 无 无 3 4 5 Products_id price Final_price 产品关联id 产品价格 最终价格 Int(10) Decimal(15.2) Decimal(15.2) 否 否 否 否 否 否 无 0 0 邮寄方式表主要是为计算邮寄费用产生的,不同的邮寄方式会带来不同的邮寄费用。表结构如表3-7所示
表3-7 邮寄方式表(shipping)结构
序 号 1 2 3 字 段 id Shippingname Fee 描 述 自动编号 费用名称 类型和长度 Mediumint(8) varchar(200) 主 键 可 空 是 否 否 否 否 否 默认值 无 无 无 费用计算公式 Varchar(200) 管理组设置表是为了存储管理员的不同管理权限。表结构如表3-8所示
表3-8管理组设置表(Admingroups)结构
序 号 1 2 3 4 字 段 描 述 类型和长度 主 键 可 空 默认值 AdminGroupid Classes Grouptitle Allow_class_see 自动编号 Smallint(6) 类型 Varchar(30) 是 否 否 否 否 否 否 否 无 无 无 0 组名称 Varchar(30) 查看会员组 float 5 Allow_class_add 添加会员组 Int(10) 否 否 0 6 Allow_class_delete 删除会员组 Int(10) 否 否 0 7 8 9 Allow_product_see 查看商品 Int(10) 否 否 否 否 否 否 否 否 0 0 0 0 Allow_product_edit 编辑商品 Int(10) Allow_product_add 上传商品 Int(10) 10 Allow_product_delete 删除商品 Int(10) 管理员信息表主要是记录管理员的信息。表结构如表3-9所示
表3-9 管理员信息表(customers)结构
序 号 1 2 3 4 5 6 字 段 Admin_id name password admingroupsid createdate lastvisit 描 述 自动编号 名称 密码 管理组 创建时间 最后登录时间
类型和长度 Smallint(6) Varchar(30) Varchar(30) Varchar(30) Int(10) Int(10) 主 键 可 空 默认值 是 否 否 否 否 否 否 否 否 否 否 否 无 无 无 无 无 无
4系统详细设计
4.1系统设计
在系统总体设计阶段已经提到过本系统采用MVC体系架构,但MVC架构具体
是怎么实现的呢?下面我将介绍系统的具体实现功能。 4.2 公共模块设计
结构合理的系统都是经过改良的,将共同的东西取出来放置到相同的地方供引用和调用时设计系统必须要做的工作。 4.2.1数据库公共模块
PHP中将创建数据库连接connection 独立出来做成公用的文件是最常用的做法,我将其命名为config.php,放置在include目录下。这个目录用来存储供整个系统公用的目录。当页面需要使用数据库连接时,只需要通过PHP的 Require ‘include/db_mysql.php’;?>引用公用文件即可,这样不但避免了每个页面都编写数据连接,而且也能避免当数据连接发生变化时去修改每一个页面的麻烦。Db_mysql.php中使用了两种方式来获取与数据库连接:一种是获取已有的连接mysql_pconnect($dbuser,$dbpw),这样无须重复的建立连接,节约了资源:另外一种方式是mysql_connect($dbhost,$dbuser,$dbpw),这种方式是获取一个新的连接。在获取连接资源时,通常会传递3个参数,这里分别是$dbhost,$dbuser,$dbpw,代表的是带有端口号的主机地址,登录用户名和密码。
Config.php中的定义代码如下所示:
Define(‘DB_SERVER’,’localhost’);//数据库服务器 Define(‘DB_SERVER_USERNAME’,’root’);//数据库用户名 Define(‘DB_SERVER_PASSWORD’,’’);//数据库密码 Define(‘DB_DATABASE’,’shoopdb’);//数据库名 4.2.2 common.php和golbal.php单元
Common.php是公共函数的文件,将公共函数独立出来可以大大节约编程时间及编程量,也为后期维护带来很大方便。
Global文件是对全局变量的处理。 4.3产品模块设计 4.3.1产品类型设计
产品一般有大类和小类之分,多级栏目使用树结构来展示。可以单击编辑和删除来修改。分类列表如图4-1所示。
图4-1分类列表
分类编辑修改分类名称和是否在页面显示。如图4-2所示
图4-2分类修改列表
4.3.2产品添加设计
把产品作为一个类封装起来可方便对产品进行各种处理。Includes中的cla.products_p.php和cla.products.php文件就是对产品的封装。 首先,添加产品的基本信息,如图4-3所示。
图4-3 产品的基本信息添加
添加完产品的基本信息后单击提交按钮,系统会向服务器端提交产品的基本信息,之后就会自动转向详细信息添加页面;如果添加产品基本信息不成功,将转向错误显示页面。
完成提交后,程序会自动转向产品详细信息添加页面。该页面分为5个子页面。如图4-4所示
图4-4 详细信息添加页面
如添加错误可以修改如图4-5所示
图4-5商品分类修改页面
商品图片添加页面如图4-6所示