首页 新闻 会员 周边 捐助

购物车如何实现?用什么技术?

0
悬赏园豆:10 [已解决问题] 解决于 2015-12-04 16:43

想了解下,现在购物车的实现方式是怎样的?用到那些技术?,cookie?session?redis?能否给出一套方案?

悟空,你真了不得的主页 悟空,你真了不得 | 初学一级 | 园豆:169
提问于:2015-12-04 12:59
< >
分享
最佳答案
0

现在一般都用数据库, 加到数据库的好处是用户只要没有移除商品都可以看到,不管是退出系统,还是换客户端(web,android,ios)

收获园豆:8
jio92 | 小虾三级 |园豆:1064 | 2015-12-04 13:55

这样数据岂不会非常多而且重复?

悟空,你真了不得 | 园豆:169 (初学一级) | 2015-12-04 14:00

@杨小剑: 数据多这个不是很正常的吗

傲雪江南 | 园豆:174 (初学一级) | 2015-12-04 14:02

@傲雪江南: 那对数据库的要求会不会很高,频繁的跟数据库打交道,这样好么?你们做的购物车用数据库做的么?用的怎么样?

悟空,你真了不得 | 园豆:169 (初学一级) | 2015-12-04 14:14

@杨小剑: 为什么会重复? 如果出现重复数据说明你代码有问题, 用户id肯定是唯一的,商品id肯定是唯一的,购物车数据肯定需要这2个字段来组成数据,如果出来重复数据,那么这2个字段肯定有重复的id,那么这就是一个严重的问题.  在用户购买了以后,你可以直接删除购物车数据,或者标识为删除

jio92 | 园豆:1064 (小虾三级) | 2015-12-04 14:30

@jio92: 那这样的话,还用借助像redis这样的缓存服务器处理么?

悟空,你真了不得 | 园豆:169 (初学一级) | 2015-12-04 14:58

@杨小剑: 用关系型数据库(mssqlserver,oracle),或者非关系型数据库(redis,mongoDB)都可以,看你选择

jio92 | 园豆:1064 (小虾三级) | 2015-12-04 15:01

@jio92: 哪个更好呢?您有这方面的资料吗?或者要实现这个功能要注意哪些?

悟空,你真了不得 | 园豆:169 (初学一级) | 2015-12-04 15:06

@杨小剑: 你要看你的访问情况,如果访问量超大,肯定需要redis这类做缓存,加分布式,购物车这种数据不是特别重要的就不需要同步到数据库中,如果你访问量一般,就直接用数据库嘛,用完直接删数据问题也不大

jio92 | 园豆:1064 (小虾三级) | 2015-12-04 15:57

@jio92:  那对于刚开始的项目使用session做还是用cookie做呢?

悟空,你真了不得 | 园豆:169 (初学一级) | 2015-12-04 16:44

@杨小剑: 既然已经决定用数据库,就没必要在用session或cookie,而且不要轻易使用session来存数据,至于为什么你去院子看session丢失相关的文章嘛

jio92 | 园豆:1064 (小虾三级) | 2015-12-04 16:47

@jio92: 这样做的话是不是就只有用户登录了之后才能使用购物车的功能了

悟空,你真了不得 | 园豆:169 (初学一级) | 2015-12-04 16:59

@杨小剑: 嗯,对未登录的话就用cookie先存,登陆后将cookie数据同步到数据库

jio92 | 园豆:1064 (小虾三级) | 2015-12-04 17:09

@jio92: 明白了,谢谢你哈!

悟空,你真了不得 | 园豆:169 (初学一级) | 2015-12-04 17:13

@jio92: 麻烦再问一下像这样不同商品有不同数量的属性是怎么传到后台的?这些预置的属性和自定义的属性的表又是怎么设计的?

悟空,你真了不得 | 园豆:169 (初学一级) | 2015-12-05 15:47
其他回答(3)
0

你说的三种方式都能行,还有也可以使用 Application

webaspx | 园豆:1973 (小虾三级) | 2015-12-04 13:18

哪种更好些?能说下思路么?

支持(0) 反对(0) 悟空,你真了不得 | 园豆:169 (初学一级) | 2015-12-04 13:36
0

呵呵,购物车这件杀鸡的事,用数据库实现就行了,这个是最好的解决方案。一般企业都是这样子实现的

需要格局 | 园豆:2145 (老鸟四级) | 2015-12-04 13:28

这是最好的方案么?这样读写会不会太频繁了?

支持(0) 反对(0) 悟空,你真了不得 | 园豆:169 (初学一级) | 2015-12-04 13:36
0

放在数据库是最好的,就像楼上所说,商品id和用户id是最直接高效的

收获园豆:2
向量 | 园豆:156 (初学一级) | 2015-12-04 14:49

我的理解是数据是肯定要放数据库里,是直接放的还是根据状态不同或放入内存或直接放入库里.您能说下思路么

支持(0) 反对(0) 悟空,你真了不得 | 园豆:169 (初学一级) | 2015-12-04 15:00

@杨小剑: 当然是放在数据库,如果放在内存里面,突然用户断电了,重新进商城的话,购物车的东西就没了。

选好一个商品,点击加入购物车的时候,你要把商品的id和用户的id放入购物车表里面,如果还有其他重要的标志性信息也可以放进去,这样用户就是退出商城,下次进入的时候,系统加载也可以去检索购物车表信息,当用户结算后,可以删除购物车的这行数据,把订单号价格以及其他数据放入其他表中,这样就对于该用户清空购物车了

支持(0) 反对(0) 向量 | 园豆:156 (初学一级) | 2015-12-04 15:08

@一行代码闯天下: 这样做有什么办法减轻数据库的压力?

支持(0) 反对(0) 悟空,你真了不得 | 园豆:169 (初学一级) | 2015-12-04 15:13

@杨小剑: 做数据拆分,商城这种数据量大的数据库,可以按时间拆分,一个月建一张表

支持(0) 反对(0) 向量 | 园豆:156 (初学一级) | 2015-12-04 15:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册