商城开发中购物车的数据持久化
典型的购物车需要实现的效果(功能).
a, 相同的浏览器, 在未登录的情况的下, 可以将购物车商品保存很长时间. 购物车与浏览器绑定. cookie技术
b, 在登录情况下. 任何浏览器, 任何时候, 都可以找到购物车中的商品. 购物车与会员绑定. 数据库持久化存储
方案:
会员登陆时, 存储在数据表中. 会员未登录时,存储在cookie中.
由未登录, 转到登录状态时, 将cookie中的购物车商品, 同步到当前购物车中.
反过来(退出登录), 不需要同步.
购物车(对象,类)的实现:
购物车的基本功能:增加商品、删除某个商品、更新某个商品的数量、清空购物车
数据的持久化:在购物车对象, 被销毁释放时, 将所购商品存储起来
数据的初始化
为了便于管理,这里将全部的购物车操作, 封装一个对象来完成
这里实例为PHP语言中TP框架内的实现
// 存放全部商品
private $goods_list = [];
设计该属性, 存储全部购物车的商品, 主要的属性. 关联数组结构
其键: 使用商品id表示. 其值, 使用购买数量表示.
[3] = 10;, id为3的商品, 购买了10件
添加商品:
已经购买过, 修改购买数量即可
没有买过, 添加商品即可
更新购物车
删除、清空操作
在PHP开发里把所有操作封装成对象来完成的
数据持久化编码实现
在析构方法中, 完成对数据持久化的处理. 析构是自动被调用, 可以保证一定会执行.
选择将数据序列化后, 存储到cookie或数据表中
在析构方法中完成调用
数据初始化
初始化数据的方法
判断是否登录, 选择从 数据库 还是 cookie中拿数据:
反序列化后, 设置$cart->goods_list.
初始化步骤
构造方法中调用初始化
保证一个会员只有一个购物车
可以用单例模式实现
购物车的设计
购物车中存储的内容:
所购商品ID 和 购买数量.
购物车的持久化存储, 如何实现?
(购物车的数据存储在何处?)
发表评论 取消回复