大超市里一般都是很多台POS机 同时销售,应该是共用的一个库存量吧(申明本人不了解POS机)我做的一套进销存,每个店只有一台电脑,每个电脑对应一个库存,所以不会出现多台电脑去同时销售一个库存里面的商品.我就想问问像超市那样 怎么实现...
难道大超市里有几万个商品,都不用库存,只要有条形码就可以去销售,如果客户没有拿出商品也就扫描不出商品信息,这样库存量也没什么意思.我做的是给个人老板,开了几家连锁店,每个点都有库房,是根据用户的信息查询出应该调用那个仓库的库存量如:1店销售商品,去后台数据查询 1店的商品信息(商品名称,库存数量) 然后返回前台进行 操作减掉相应的库存量但是大超市不可能一台电脑对应一个库存量吧,那个管理起来太麻烦了.比如:大超市 三台电脑同时销售 商品一(同时去查询商品名称,库存数量) 进行操作库存信息,那我的软件就有问题了,那也只会认出最后一个提交信息======
商品名称 库存量
A商品 10如果说是同一时间同一秒触发的
A电脑 A商品 客户消费2
B电脑 A商品 客户消费3
C电脑 A商品 客户消费1如果说C电脑 最后点了结算操作的话, 那我这里 就是把 A电脑与B电脑的库存量提交的给覆盖掉了
======
商品名称 库存量
A商品 9
改怎么处理啊.....帮帮忙提醒下怎么做SQL 数据库处理
难道大超市里有几万个商品,都不用库存,只要有条形码就可以去销售,如果客户没有拿出商品也就扫描不出商品信息,这样库存量也没什么意思.我做的是给个人老板,开了几家连锁店,每个点都有库房,是根据用户的信息查询出应该调用那个仓库的库存量如:1店销售商品,去后台数据查询 1店的商品信息(商品名称,库存数量) 然后返回前台进行 操作减掉相应的库存量但是大超市不可能一台电脑对应一个库存量吧,那个管理起来太麻烦了.比如:大超市 三台电脑同时销售 商品一(同时去查询商品名称,库存数量) 进行操作库存信息,那我的软件就有问题了,那也只会认出最后一个提交信息======
商品名称 库存量
A商品 10如果说是同一时间同一秒触发的
A电脑 A商品 客户消费2
B电脑 A商品 客户消费3
C电脑 A商品 客户消费1如果说C电脑 最后点了结算操作的话, 那我这里 就是把 A电脑与B电脑的库存量提交的给覆盖掉了
======
商品名称 库存量
A商品 9
改怎么处理啊.....帮帮忙提醒下怎么做SQL 数据库处理
解决方案 »
- GridView.RowCommand的问题。。。。。。。。。。。。。。。。
- DataGridView DataTable DataSet 的关系及应用
- c#写window服务程序
- [讨论]<%# DataBinder.Eval(Container.DataItem, "字段名">有意思的问题。
- 如果将一个继承类实例赋值给一个基类变量
- 【comboBox问题】:有没有什么办法把同一个DataSet中的数据加载到不同的2个combobox上去,现实的内容是不同的
- 如何填充一个非规则的区域?
- 如果程序中产生错误了,如何忽略错误往下继续执行?
- 关于DATATIME控件的三个问题??谢谢!
- comboBox 数据库
- 两句话的区别??
- !!!VS中运行结果不一致的问题!!!
再说了。一条记录的修改是很快的。即使加锁,延迟也不会太久。
而且,10个POST机器,能在同一分钟内扫描同一产品的几率不是太大。
呵呵 朋友说的事.
但是我这里就碰见过,要不我怎么知道会这样了我的意思如果 同一秒(实际情况出现了几次,太夸张.......)
A电脑 挂起了,在销售A商品 这个时候检索出 仓库里数量为 10 出售3 继续销售B电脑 也挂起,在销售A商品 这个时候检索出 仓库里数量也为 10 出售1 直接结算,扣掉库存 为 9A电脑 挂起,继续销售别的商品后, 结算,这是麻烦出现了,他会以A电脑上条信息去更新数据的 扣掉库存 为 7 这样库存就不对了,,,
朋友你说 数据锁 能解决这个问题??没用过数据锁,是什么功能啊
http://tech.ddvip.com/2007-01/116783049617255.html
A电脑 挂起了,在销售A商品 这个时候检索出 仓库里数量为 10 出售3 继续销售 B电脑 也挂起,在销售A商品 这个时候检索出 仓库里数量也为 10 出售1 直接结算,扣掉库存 为 9 A电脑 挂起,继续销售别的商品后, 结算,这是麻烦出现了,他会以A电脑上条信息去更新数据的 扣掉库存 为 7
看不懂,更不明白为什么要用锁。A电脑销售A商品的时候为什么要挂起?库存为什么要更新?
销售一个商品,建个事务:销售表中insert一条记录,同时set 库存=库存-1,提交事务。数据库自身有机制来管理SQL语句的执行(同时两条set 库存=库存-1 的锁机制) 。
如果你修改库存非要用 set 库存=9 ; set 库存=7 这样的语句就没办法了。
例如 SELECT * FROM TB WIHT(HOLDLOCK)