我有一个外部连接有限的数据库(最多 5 个)。由于这个原因,我介绍了一个维护所有数据库操作的服务器应用程序。该服务器使用带有回调的 WCF 服务来通知客户端所有更改。客户端将数据库的本地副本存储在序列化字典中。当一切正常时,如果一个客户端或服务器执行更改,则几乎立即通知所有其他客户端/服务器。问题是有时客户端不同步,唯一的修复方法是删除数据库的本地副本(有时也在服务器上)。我发现当从数据库中删除某些对象时会发生这种情况。我使用带有自动更新的日期时间来查找更改的行,但这不适用于已删除的对象。一张表有超过 160000 行,因此将它们与本地副本进行比较是......麻烦。所以问题是:
1)谁能指出我创建和维护数据库本地副本的好算法(在实际数据库和服务器之间,以及服务器和客户端之间)(我不能使用复制)
2)比序列化字典更好的本地存储方式。(加载所有数据时应用程序占用大量空间)
PS。我考虑了几种没有数据库的解决方案,但我总是得出结论,我需要那个本地副本。