超市里的软件如何解决多台机器同时操作表所导致的并发问题(50分)

  • 主题发起人 主题发起人 wjqhyg
  • 开始时间 开始时间
好像没有那么复杂吧;超市卖东西,大家都是知道是客户拿着东西来结账,也就是 货物是肯定存在的,那就不必判断库存数量了、然后价格肯定也是定好的,无外乎对于前台来说就是:普通价格和会员价两种;然后直接出库结账(在一个事务中完成)就OK了哇....还有那么复杂吗?
 
没有做过就不要乱说,越复杂就有其考虑
 
肯定有本地数据库 上传到服务器 &nbsp;价格下发什么的也肯定是在非营业时间做的阿<br>(交通行业就是如此)
 
根本就不存在并不并发的问题.<br>因为:<br>每台POS机有个惟一的编号,并且按些编号+时间+当天流水序号生成一个ID号.
 
qingxi<br>同意你的看法,我以前做医院的挂号就这样!<br>但是不知道超时怎么样的!
 
关键字:transaction,rowlock,readpast(or nolock)<br>1.尽可能使用手动事务,即显式的begin transaction/commit transaction/rollback transaction,(如果你对表的锁定和事务掌握还不够,那就自己加强)。<br>2.非必要的时候尽可能使用行集锁定(行锁定对数据库资源的消耗是最大的,但是影响范围是最小的),对于表的锁定操作遵循统一的锁定顺序。<br>3.尽可能减小事务的粒度(小粒度的事务可以分摊数据库的资源,提升数据库处理事务的能力,即所谓的并发能力)。<br>4.建立合理的索引<br>5.对数据内存进行分区存储(比如把一些日志性的数据放到独立的文件当中,必要的时候放到独立的磁盘当中),一些频繁访问的信息,特别是频繁更新的表结构和索引,放到高速磁盘当中(了解一下服务器的各磁盘系统的特点及参数没有什么坏处的)。<br>6.数据库服务器尽量保留一定的可用物理内存,对于一些高负荷的非必要实时性的操作进行一个限时和或者作业安排。对磁盘空间做好监控和预算,适时进行数据整理,包括历史数据归档备份等等。
 
事务处理。
 
来自:bsense, 时间:2008-8-8 10:17:20, ID:3912937<br>商业机密,不过可以给点提示给你.<br><br>一般前台都有断网销售功能(必须)<br><br>下载基本资料<br>每个前台一个id ,销售数据按此id编写 key ,eg : 01 2008 06 01 00001 (机器id,日期,本机自己编的sn)<br><br>定时上传,网络不通则保存本地<br><br>下班每机检查自己是否有没有上传的,把网搞通,上传,<br><br>扎帐(就是统一计算上帐)<br><br>不做实时上帐<br><br>不存在并发问题(避免了)<br><br>分全部该给我 &nbsp;<br>-------------------------------<br>bsense君说的很对,事实上,顾客到前台结帐就说明此物品有库存。<br>有标签条码的商品价格是固定的,或提前定好的,一般不会随意更改。<br>每天款机开机的时候会自动和服务器互传数据更新。<br>而调价的商品一般限于散货,有变更也不会更改款机数据的,下传哪里你自己去超市调查一下,这个问题不能闭门造车,看是否有操作同一个表的必要。
 

Similar threads

后退
顶部