序 号 字 段 描 述 类型和长度 主 键 可 空 默认值 1 2 3 4 5 6 rid Email 自动编号 Mediumint(8) 用户名称 Varchar(30) Int(10) text Int(10) Mediumint(8) 是 否 否 否 否 否 否 否 否 否 否 否 无 无 无 0 0 0 Products_id 产品 id review 评论内容 Date_added 添加时间 viewed 被浏览次数 产品的信息列表记录的是产品的基础信息,包括产品的价格、重量、名称、所属分类、详细描述等字段。表结构如表3-4所示
表3-4产品表(products)结构
序 号 1 字 段 描 述 类型和长度 主 键 可 空 否 默认值 Products_id 自动编号 Mediumint(8) 是 无 2 Classes_id 分类编号 Mediumint(8) 否 否 无 3 4 5 name model image 产品名称 产品单位 产品展示图片链接 Varchar(64) Varchar(64) Varchar(64) 否 否 否 否 否 否 无 无 无 6 price 产品价格 Decimal(15.2) 否 否 0 7 weight 产品重量 Decimal(5.2) 否 否 0 8 9 description manufacturer 产品描述 生产厂商 Text Varchar(64) 否 否 否 否 无 无
订单表主要记录的就是用户订单的详细信息,包括购买人、购买人的联系方式、产品的价格、邮寄方式等信息。由于每次用户可能会定购多种产品,所以订单将分成两个表来记录,一张用来记录联系信息,一张表用来记录联系信息和产品之间的关联。表结构如表3-5和表3-6所示
表3-5订单表联系信息(orders)结构
序 号 1 字 段 描 述 类型和长度 主 键 可 空 默认值 Order_id 自动编号 Mediumint(8) Varchar(100) Int(10) Varchar(100) Varchar(100) Varchar(100) Int(10) 是 否 无 2 D_name 用户联系姓名 否 否 无 3 4 cid D_street_address 会员id 会员地址 会员联系方式 否 否 否 否 无 无 5 D_tel_mobile 否 否 无 6 Orders_status 订单状态 否 否 无 7 Shipping_method 邮递方式 否 否 无 表3-6订单产品信息关联表(orders_products)结构
序 号 字 段 描 述 类型和长度 主 键 可 空 默认值 1 opid 自动编号 Mediumint(8) 是 否 无 2 Orderd_id 于orders表关联id Int(10) 否 否 无 3 Products_id 产品关联id Int(10) 否 否 无
4 price 产品价格 Decimal(15.2) 否 否 0 5 Final_price 最终价格 Decimal(15.2) 否 否 0 邮寄方式表主要是为计算邮寄费用产生的,不同的邮寄方式会带来不同的邮寄费用。表结构如表3-7所示
表3-7 邮寄方式表(shipping)结构
序 号 字 段 描 述 类型和长度 主 键 可 空 默认值 1 id 自动编号 Mediumint(8) 是 否 无 2 Shippingname 费用名称 varchar(200) 否 否 无 3 Fee 费用计算公式 Varchar(200) 否 否 无 管理组设置表是为了存储管理员的不同管理权限。表结构如表3-8所示
表3-8管理组设置表(Admingroups)结构
序 号 1 字 段 描 述 类型和长度 主 键 可 空 默认值 否 无 AdminGroupid 自动编号 Smallint(6) 是 2 3 4 Classes Grouptitle Allow_class_see 类型 Varchar(30) 否 否 否 否 否 否 无 无 0 组名称 Varchar(30) 查看会员组 float 5 Allow_class_add 添加会员组 Int(10) 否 否 0 6
Allow_class_delete 删除会Int(10) 否 否 0
员组 7 Allow_product_see 查看商品 8 Allow_product_edit 编辑商品 9 Allow_product_add 上传商品 10 Allow_product_delete 删除商品 管理员信息表主要是记录管理员的信息。表结构如表3-9所示
表3-9 管理员信息表(customers)结构
Int(10) 否 否 0 Int(10) 否 否 0 Int(10) 否 否 0 Int(10) 否 否 0 序 号 1 2 3 4 字 段 描 述 类型和长度 主 键 可 空 默认值 Admin_id name password admingroupsid 自动编号 名称 密码 管理组 Smallint(6) Varchar(30) Varchar(30) Varchar(30) 是 否 否 否 否 否 否 否 无 无 无 无 5 6 createdate lastvisit 创建时间 最后登录时间
Int(10) Int(10) 否 否 否 否 无 无 4系统详细设计
4.1系统设计
在系统总体设计阶段已经提到过本系统采用MVC体系架构,但MVC架构具体是怎么实现的呢?下面我将介绍系统的具体实现功能。 4.2 公共模块设计
结构合理的系统都是经过改良的,将共同的东西取出来放置到相同的地方供
引用和调用时设计系统必须要做的工作。 4.2.1数据库公共模块
PHP中将创建数据库连接connection 独立出来做成公用的文件是最常用的做法,我将其命名为config.php,放置在include目录下。这个目录用来存储供整个系统公用的目录。当页面需要使用数据库连接时,只需要通过PHP的 Require ‘includedb_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所示。