基于B2C的电子商城开发
- 格式:doc
- 大小:3.86 MB
- 文档页数:61
一.项目背景
1.项目的意义
www = w hy + w hat + ho w
W:why?
✓看看自己学的怎么样
✓能否灵活运用各个知识点,完成一个项目。
✓找到做项目的一个感觉,积累项目经验,为找工作奠定基础。
✓通过项目,认识自己的不足,然后更加努力。
2.项目定位
W:what?
PHP可以干什么?
Web开发,基于B/S
✓电子商务
✓CMS,内容管理系统,涵盖面比较广泛
✓SNS,社交网站
✓各种管理系统
电子商务的一些模式
B,商家C,客户
✓B2C:商家对客户。
凡客,小米
✓C2C:客户对客户,网站方只提供平台。
淘宝、拍拍
✓B2B2C:商家对商家对客户。
京东,当当,国美,苏宁
✓B2B:商家对商家,批发平台。
阿里巴巴
✓O2O:online 2 offline,线上线下,美团、糯米,大众点评,比较依赖于地图。
最多的是B2C。
我们的项目,是基于B2C模式的电子商城。
做的过程中,可以参考ecshop、京东。
W:ho w
二.项目规划
1.项目整体架构
从电子商务的角度来讲,电子商城通常包括3 个方面:
✓商品部分
✓用户部分
✓电子商务(订单)
从开发项目的角度来看,需要完成两个方面的事情
✓后台的开发
✓前台的开发
整体架构图
商品模块,是我们商城的核心,也是整个电子商城项目中最难的一个内容。
2.时间安排
三.数据库设计
重要程度:*****
难度:*****
数据库的设计,就是体现了你对业务逻辑的理解。
数据库设计的好坏,有时候决定了项目的成败。
要点:
✓表与表之间的关系(一对一、一对多[多对一],多对多[难])
✓每一个字段的数据类型(数值、字符串、日期时间)没有布尔类型[使用tinyint]
如何来设计数据库?----以商品模块为例
找到核心(中心),然后一步一步的展开。
核心----商品
先来初步设计一下商品表的字段:
名称、价格、图片、颜色、上架时间、各种规格参数、详细描述,库存,品牌、分类。
这么多的属性,是存放到一张表当中的吗?
品牌和商品是两个不同的东西,设计表的一个理念:一张表表示一种信息。
冗余-->更新异常、删除异常。
耦合性高。
软件开发的一个理念:低耦合、高内聚。
如何来判断品牌和商品是两种不同的信息呢?
[小技巧]:看他们的生存周期-----生死时刻。
品牌:apple 1984年就有了
商品:iphone 6 2014年才有的
商品和它的价格,生存周期就是一致的。
有了这个商品,自然就要定一个价格。
应该吧品牌单独的拿出来,用一张新的表保存。
品牌和商品有关系,是一个什么样的关系呢?
正反两个方向来看。
一个品牌对应n 个商品
一个商品对应1 个品牌
综上所述:品牌和商品之间的关系一对多1:n
如何体现这种一对多的关系呢?
1的一方,称之为父表,多的一方称之为子表。
需要在子表中增加一个字段,和主表中的主键进行关联,子表中的这个字段就是外键。
由一张表到两张表,这个过程很重要。
商品分类信息,同样也单独的保存到一张表中。
商品分类表。
商品的扩展属性
先看实际情况
三星s6
苹果6
再来看书籍的情况
Php书
Mysql书
不同类型(书、手机)的商品有不同的扩展属性。
商品的属性,对商品的描述,通常分为两种信息:
✓基础信息:所有的商品都具备的属性,如商品名称,价格,缩略图。
✓扩展信息:不同类型的商品,它的扩展信息是不同的,如服装,有材质,颜色,做工,手机则具备屏幕尺寸,操作系统,内存大小,摄像头,书籍具备出版社,作者,ISBN,印刷。
不同类型的商品,它有不同的扩展属性,
首先就需要把这些扩展属性保存起来。
此时就有两种表,goods_type和attribute表。
要注意,attibute表存到属性本身,不是某个商品的属性。
商品和属性之间的关系。
解决多对多的问题,需要引入第三张关联表。
本项目商品模块的表设计ER图
思考:
商品分类和商品类型有何区别?
商品分类它是为商品服务,为了将商品进行分门别类的管理,商品类型是为属性服务的,
二者的目的就不一样了。
四.编程思想
思想决定高度。
1.oop思想
OOP:O bject O riented P rogramming,面向对象程序设计,面向对象编程
OOP的三大特征:
✓封装,通过类实现的,将内部实现细节隐藏起来,给外部提供一个调用接口。
✓继承,通过extends来实现的,子类可以继承父类的属性和方法(protected和public)✓多态,php本身就是多态的,php是弱类型的语言。
在php中一般不怎么提到多态概念。
OOP的好处:
✓可维护性好
✓可扩展性好
✓可重用性好
✓灵活度好
我们的项目也是采用OOP的,所以就有很多类和方法。