现在一般都用数据库, 加到数据库的好处是用户只要没有移除商品都可以看到,不管是退出系统,还是换客户端(web,android,ios)
这样数据岂不会非常多而且重复?
@杨小剑: 数据多这个不是很正常的吗
@傲雪江南: 那对数据库的要求会不会很高,频繁的跟数据库打交道,这样好么?你们做的购物车用数据库做的么?用的怎么样?
@杨小剑: 为什么会重复? 如果出现重复数据说明你代码有问题, 用户id肯定是唯一的,商品id肯定是唯一的,购物车数据肯定需要这2个字段来组成数据,如果出来重复数据,那么这2个字段肯定有重复的id,那么这就是一个严重的问题. 在用户购买了以后,你可以直接删除购物车数据,或者标识为删除
@jio92: 那这样的话,还用借助像redis这样的缓存服务器处理么?
@杨小剑: 用关系型数据库(mssqlserver,oracle),或者非关系型数据库(redis,mongoDB)都可以,看你选择
@jio92: 哪个更好呢?您有这方面的资料吗?或者要实现这个功能要注意哪些?
@杨小剑: 你要看你的访问情况,如果访问量超大,肯定需要redis这类做缓存,加分布式,购物车这种数据不是特别重要的就不需要同步到数据库中,如果你访问量一般,就直接用数据库嘛,用完直接删数据问题也不大
@jio92: 那对于刚开始的项目使用session做还是用cookie做呢?
@杨小剑: 既然已经决定用数据库,就没必要在用session或cookie,而且不要轻易使用session来存数据,至于为什么你去院子看session丢失相关的文章嘛
@jio92: 这样做的话是不是就只有用户登录了之后才能使用购物车的功能了
@杨小剑: 嗯,对未登录的话就用cookie先存,登陆后将cookie数据同步到数据库
@jio92: 明白了,谢谢你哈!
@jio92: 麻烦再问一下像这样不同商品有不同数量的属性是怎么传到后台的?这些预置的属性和自定义的属性的表又是怎么设计的?
和
你说的三种方式都能行,还有也可以使用 Application
哪种更好些?能说下思路么?
呵呵,购物车这件杀鸡的事,用数据库实现就行了,这个是最好的解决方案。一般企业都是这样子实现的
这是最好的方案么?这样读写会不会太频繁了?
放在数据库是最好的,就像楼上所说,商品id和用户id是最直接高效的
我的理解是数据是肯定要放数据库里,是直接放的还是根据状态不同或放入内存或直接放入库里.您能说下思路么
@杨小剑: 当然是放在数据库,如果放在内存里面,突然用户断电了,重新进商城的话,购物车的东西就没了。
选好一个商品,点击加入购物车的时候,你要把商品的id和用户的id放入购物车表里面,如果还有其他重要的标志性信息也可以放进去,这样用户就是退出商城,下次进入的时候,系统加载也可以去检索购物车表信息,当用户结算后,可以删除购物车的这行数据,把订单号价格以及其他数据放入其他表中,这样就对于该用户清空购物车了
@一行代码闯天下: 这样做有什么办法减轻数据库的压力?
@杨小剑: 做数据拆分,商城这种数据量大的数据库,可以按时间拆分,一个月建一张表