我在许多计算机上安装了我的客户端应用程序,每台计算机都通过LAN连接。每个客户端应用都使用自己的SQL数据库。我需要同步每台计算机中的数据库,以便每个客户端应用程序都具有相同的数据。如何使用VB.net(VS 2010,Winforms)实现这一目标
答案 0 :(得分:0)
一种方法是使用队列表。在表上放置一个插入/更新触发器,将任何更改推送到qeuue。如果插入了表行,然后更新了两次,那么队列中将包含插入,更新,更新信息。然后,客户端根据从队列中提取的最后一次请求队列中的更改。队列的优点是负载保持很小。您可能有一个包含100,000行的表,但您只下载了所需的3或4个编辑。
另一种技术是抓住整个桌子。对批处理表执行批量插入。然后执行基于集合的更新/插入以更新现有行,插入新行。
你提出的任何解决方案都会在房间里有800磅的大猩猩。那就是合并。如果2个用户提交的冲突数据编辑到同一行,则表示您遇到问题。您可以通过更频繁地同步来减少机会。队列表使自己更好地进行同步,因为您自上次以来仅同步新的编辑。如果您非常幸运,您的应用程序的性质将使每个客户只接触它的“自己的”数据,因此合并不会是一个问题。
您处于局域网环境中。只有一个数据库,所有客户端访问。这是关系数据库应用程序的传统模型,效果很好。