首页 新闻 会员 周边 捐助

电商购物问题

0
悬赏园豆:50 [已解决问题] 解决于 2015-08-12 06:46

有一个需求:

规定某件商品只能卖5000件,

1:我怎么才能保证不多卖出?

2:假如现在已经卖了4999件,来了一个客户,下订单要买2件,怎么处理它的订单?

3:如果有很多人同时在买,怎么处理并发问题,同时能解决上面的二点。

 

做过电商的能不能讲下有哪些思路?

DZCMS的主页 DZCMS | 初学一级 | 园豆:5
提问于:2015-06-18 13:41
< >
分享
最佳答案
0

你看这样如何呢?

能买5000,这是一个限制问题..那么加一个表,规定哪个商品能买多少件..

程序启动后..将每个商品的ID作为Key,{限制件数,当前买出数}new一个自定义对象 放入一个HashTable中作为Value,这样就只读取一次数据库.

对买出数的更新加个Volatile关键字来保证原子操作.

这样多线程的并发更新就得到解决,

在用户加入购物车时,可以从已买出和总限制这2个变量知道还能买几个...

当用户的数量大于能买的时给出提示...

用户提交订单时,再次检查已买出变量..决定是否能下单,下单之后更新变量.

 

这时大概思路..希望能帮到你.

 

收获园豆:50
hexllo | 菜鸟二级 |园豆:318 | 2015-06-21 15:25
其他回答(6)
0

你就是传说中的全栈工程师,连业务需求都包揽了。

Launcher | 园豆:45050 (高人七级) | 2015-06-18 14:21

这里是帮助别人的地方,没卵用的评论请移步网易评论区

支持(0) 反对(0) wulawulaho | 园豆:74 (初学一级) | 2015-06-19 10:44
0

传说中的老板兼程序员和CTO,

听说编程很简单。

500元做一个商城。

爱编程的大叔 | 园豆:30844 (高人七级) | 2015-06-18 14:26

这里是帮助别人的地方,没卵用的评论请移步网易评论区

支持(0) 反对(0) wulawulaho | 园豆:74 (初学一级) | 2015-06-19 10:44

@wulawulaho: 然而谁来评价有啥卵用。

吃着沙县料理,操着中南海的心,这种人不一棍子打醒,一辈子也只能看看陈安之了。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2015-06-19 11:07
0

1: 在设计数据库的时候,在商品表里,对应的商品弄一个卖出数量,每买一件++,到了5000以后就禁用购买按钮或产品下架

2: 这种情况就得看业务了,a: 如果这个商品库存就只有5000,售出4999, 就只剩下1件了,你可以给个友好提示,说商品只剩下一件了,叫他买一件,然后给出类似的商品推荐,看他是否有意向购买

                                     b:倘若库存很足,而多卖一件不影响大局的话,那就卖给他。

3: 这个可以用锁来解决,无论也数据库的锁还是前端锁都可以。

纯手打,有问题就继续追问, 没问题就请采纳吧!  :)

请叫我头头哥 | 园豆:9382 (大侠五级) | 2015-06-18 14:29

可是我这个商城是要面向全宇宙的,要考虑300亿人并发处理咋办?

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2015-06-18 14:59

@爱编程的大叔: 这个很简单, 那咱就做300亿个商城,保证1对1买卖,人手一个app。 这就不存在并发了。

支持(0) 反对(0) 请叫我头头哥 | 园豆:9382 (大侠五级) | 2015-06-18 15:06
0

只能卖5000件,那你显示的时候就显示5000件啊,客户下两件的订单,给个提示不就行了

浅草青晨 | 园豆:904 (小虾三级) | 2015-06-18 15:39
0

这个问题很好解决。

现在程序构架一般都是SOA,RPC等方案,下订单只需要把商品的编码、要购买的数量传递给一个RPC就行。

如果返回True,则说明成功下单,如果返回False,就说明没成功。

 

至于页面上显示还有10件,你买2件却没买到,这很好解释,你购买的过程中,被别人买光了。

傲慢与偏剑 | 园豆:381 (菜鸟二级) | 2015-06-18 16:03
0

这个业务是需要加一个扣库存的概念,

你要确定在订单流程的哪一步扣库存,扣库存失败时怎么处理,至于并发就不多说...并发解决不了就别扯这么高深的问题了

吴瑞祥 | 园豆:29449 (高人七级) | 2015-06-19 10:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册