关于购物车的机制问题

elson1024 发布于 2014/07/08 15:57
阅读 556
收藏 1
PHP
1. 两个浏览器打开同一个账号,两个浏览器都可以操作购物车(这个会不会造成冲突导致多次提交,因为多个人可以同时操作)
2.两个浏览器打开同一个账号,只能是后登陆的浏览器可以操作购物车(强制只能是一对一的关系)
不知道哪个机制好点,对比了下亚马孙和京东的,他们都是第一种的,但看了下ecshop,ecmall的购物车机制是第二个的,有人能分析下吗?

加载中
0
sxgkwei
sxgkwei

这个问题我觉得你想的太多,而且太技术了。你完全不用想那么复杂的逻辑问题,你就按你的思路来做购物车就行了。或者购物车只起临时作用的,那就把数据放cookie或者session中;或者购物车要长久保存的,那就把购物车数据保存数据库里面——这一步是要看客户或者你们设计人员的要求的。然后去做就行了,不管哪种方案,其实都不要想的太技术。

真的用户要买,买东西的那个人自己又不傻,让他掏钱的事情,他肯定自己会核对自己要买的东西的,所以,不用考虑物品重复买什么的事情的情况。至于多次提及冲突,这怎么可能,这是另一个流程了好不?上一个问题已经解决了,现在的问题是,根据物品生成订单的问题,他要点就给他用能拿到的数据生成呗,只要他愿意买,多买几次我们卖的人又不会嫌弃。

0
Zoker
Zoker
每添加一次刷新下购物车,让用户清楚的知道自己的购物车有什么东西。第二种很容易的把用户搞的莫名奇妙,可能在一个浏览器登录了,没有退出,但是在另外一个浏览器不能买东西了,对电脑接触较少的人来说,就算你提示已经登录,他又忘了在那登录没法退出咋办?等超时?我觉得还是第一种吧。
0
elson1024
elson1024

引用来自“sxgkwei”的评论

这个问题我觉得你想的太多,而且太技术了。你完全不用想那么复杂的逻辑问题,你就按你的思路来做购物车就行了。或者购物车只起临时作用的,那就把数据放cookie或者session中;或者购物车要长久保存的,那就把购物车数据保存数据库里面——这一步是要看客户或者你们设计人员的要求的。然后去做就行了,不管哪种方案,其实都不要想的太技术。

真的用户要买,买东西的那个人自己又不傻,让他掏钱的事情,他肯定自己会核对自己要买的东西的,所以,不用考虑物品重复买什么的事情的情况。至于多次提及冲突,这怎么可能,这是另一个流程了好不?上一个问题已经解决了,现在的问题是,根据物品生成订单的问题,他要点就给他用能拿到的数据生成呗,只要他愿意买,多买几次我们卖的人又不会嫌弃。

你这简单多了,提交什么数据就接收什么数据,管他谁提交的,接收数据生成订单就ok了,我做这个项目是建立在ecmall这个开源的系统上的,他的机制就是第2种的,确保只能是一个用户在操作,但好奇去看了下各大商城又是第一种的,所以发帖问下这里面有什么高深的原因,可能是我想多了 :)
疯狂的流浪
疯狂的流浪
回复 @elson1024 : 感谢指点,当初为了装商城搞了个ecshop,最后发现比较蛋疼,然后,就没有然后了
elson1024
elson1024
回复 @疯狂的流浪 : 这也是没有办法的,建立在别人的系统上开发,如果不了解这个系统底层一些机制,原理,那有时候一些灵异的bug你是处理不了,ecshop的代码就不要去看了,直接看ecmall的源码吧,都是同一个公司的,ecmall比ecshop的数据库精简了很多,购物车机制也比原来的更人性化很多,值得新手去学习,不过吐槽一下就是ecmall其实也写得不怎么样,
疯狂的流浪
疯狂的流浪
楼主搞的好深入,表示ecshop的代码还有点看不明白
0
elson1024
elson1024

引用来自“Zoker”的评论

每添加一次刷新下购物车,让用户清楚的知道自己的购物车有什么东西。第二种很容易的把用户搞的莫名奇妙,可能在一个浏览器登录了,没有退出,但是在另外一个浏览器不能买东西了,对电脑接触较少的人来说,就算你提示已经登录,他又忘了在那登录没法退出咋办?等超时?我觉得还是第一种吧。
不会,就算你没有退出,照样也是可以在其他浏览器登陆后查询得到的
elson1024
elson1024
回复 @Zoker : 登陆一次刷新一次购物车的session_id
Zoker
Zoker
我浏览器太多,忘记哪个了怎么办?
0
金拱门
金拱门
题主你会影分身吗?你放心就行了。每个动作都关联到库的实时操作。除非开发人员没对状态检测,否则不会出现重复提交订单的问题。
0
布谷鸟
布谷鸟

你想复杂了,未登录前用cookie+缓存或者数据库,或者纯session都行,登录后账户+数据库

多次提交,这个,你真的想多了,用户非要这么搞,你管他呢。、

0
elson1024
elson1024

引用来自“布谷鸟”的评论

你想复杂了,未登录前用cookie+缓存或者数据库,或者纯session都行,登录后账户+数据库

多次提交,这个,你真的想多了,用户非要这么搞,你管他呢。、

主要是怕盗号什么的,因为一般情况下,用户都是只用一个浏览器打开一个账号然后再去操作的,不可能这么无聊在打开多个浏览器登陆同一个账号去操作,或者极少这种奇葩吧?如果按照大家这么说,实现这两种机制也是挺简单的,不过我还是喜欢ecmall的一对一绑定,我觉得挺好,不过还是看客户实际需求吧 :)
返回顶部
顶部