当前位置: 代码迷 >> Sql Server >> 多个客户端访问数据库的有关问题
  详细解决方案

多个客户端访问数据库的有关问题

热度:36   发布时间:2016-04-24 09:21:30.0
多个客户端访问数据库的问题
最近有个需求,做一个mis系统,CS模式,多个客户端访问数据库。
目前的想法就是,做一个服务器程序,一个客户端程序。服务器负责与数据库连接,客户端通过请求数据库来获取数据。客户端程序安装在多台电脑上。


现在有个疑问,如果多台客户端查询同一条记录之后,都准备对这条记录进行更新,怎么办?数据库该怎么设计呢?
------解决思路----------------------
可以用事务进行并发控制..
------解决思路----------------------
你这个需求中,从用户看到数据到他提交修改,这中间可能会隔很长时间。所以,建议在用户提交修改时,要先校验数据是否发生变化,单个字段可以对比值,多个字段的话用SHA1之类的算法生成一个二进制串来进行校验。如果数据被修改,则弹窗提示用户从新操作,并刷新客户端显示的数据。

------解决思路----------------------
我猜你的需求应该是
客户端可以打开一个表单显示数库中的一些数据,并且在表单上可以修改数据,但主键是不能改的。

如果是这样可以继续向下看。
1、在数据表中增加 update_time 字段(datetime 类型),用来记录最后更新的时间。(可以用触发器自动更新该字段)
2、修改动作提交时先判断update_time 值是否有变化。有变化:刷新表单。 无变化:更新数据。

另外,如果不是太复杂或者有安全方面的考虑,不需服务程序,客户端直接连数据库更容易。
------解决思路----------------------
修改时只允许一个用户操作
------解决思路----------------------
查询不加锁
更新前加锁,加锁成功者才能修改,修改成功或放弃后解锁
  相关解决方案