我的系统只需要从服务器获取更新。我如何设计我的数据库?有审计表还是有其他设计机制?我计划从我的设备发送更新ID,并检索新的更新。如何真正实现这个?
答案 0 :(得分:1)
听起来你正在寻找SQL Server Replication。您可能需要查看描述两种常见模型的technet文章Exchanging Data with Mobile Users,以及如何使用SQL服务器来帮助您。
您可以选择使用审计表滚动自己,但仍需要管理复制服务旨在帮助您解决的更新冲突问题。
答案 1 :(得分:0)
正如您所提到的那样,写入审核或更改表格已经改变了一种方法。
如果您正在使用SQLServer,那么还有一个时间戳列。它不是数据时间列 - 名称错误导致。相反,它是一个递增的数字,当触摸一行时,它会得到下一个数字。如果您获得最大时间戳,然后查询时间戳大于该长度的所有行,您将获得已更改/添加的行。
http://msdn.microsoft.com/en-us/library/ms182776(v=sql.90).aspx
SQL Server时间戳数据类型与时间或无关 日期。 SQL Server时间戳是指示的时间戳 数据修改发生在a的相对序列 数据库。最初实现时间戳数据类型 支持SQL Server恢复算法。
我特别警惕的一种方法是使用datetime作为水印。它会发生变化,变化并且不适合在算法中使用 - 尤其是检测已发生变化的情况。我已经看到系统试图依赖日期时间作为一种可靠的水印方法。
答案 2 :(得分:0)
多年前,我实施了这种设计。这非常微不足道,但确实有效。 据我所知,您希望像Adobe那样将更新推送到您的客户端。 在数据库中保留一个表(它甚至不必是一个表,您可以保持XML条目)。 加载客户端应用程序时,检查服务器版本,如果不匹配,则下载最新更新,然后更新客户端版本,否则通常加载客户端应用程序