php购物车数据库表如何设计,php - 购物车数据库表应该如何设计?

本文分享了一位有丰富B2B2C商城开发经验的开发者对于购物车设计的理解。在流量不大时,可以使用Mysql,但流量大时推荐使用Redis。未登录用户通过cookie保存,登录后数据存入Redis。Redis因其高速存取特性适用于高并发场景,可通过集群解决更大规模需求。购物车数据存储采用Hash表和集合,利用其并交集功能进行商品推荐。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PHPzhong2017-04-11 10:22:087楼

本人有过比较大的B2B2C商城开发经验,这里说一下自己的理解:

首先,分析题主的问题,你要设计的购物车是给一个什么量级的平台使用,如果使用Mysql数据库设计的话,规模不大,流量不多的情况下是完全没有问题的,但如果流量很大,用户量级上去了是行不通的。

所以,推荐根据用户登录和未登录态两种情况来做。

1.未登录时,可以采取cookie方式保存,因为存在客户端,可以缓解服务器压力。当用户登录账号后,从cookie取数据保存到redis里面。

2,用户登录了,保存购物车数据到redis中

那为什么采取这种做法,采用redis因为它保存在内存里所以速度很快,就算有很高的并发,可以采取redis集群的方案来解决,通常我们的做法都是把一些比较热的数据采用redis来保存。

后面你可能还会根据用户的购物车记录或者购买记录等等用户行为做一些商品推荐等推送的时候,redis集合的并交集谁用谁知道。

说回原题,我就说个简单思路。

产品:采用hash表存储,productID,price。。。等等

购物车:采用集合存储,因为集合的唯一性,保证一个orderId对应多个商品,再重复一下就是交并差集真的好用。。

再细分还可以设计购买物品关联的集合啊,购物记录的有序集合啊等等。

以上思路,集体细节还是结合自己的使用情况设计即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值