我会将几个不常连接的客户端连接到带有postgres后端的N层应用程序。
其中一些客户可能会比其他客户落后几天。这是针对销售点设置的。
我的表数很少,只有customers, orders, orders_details, products, inventory
和一些配置表。
我想提供一种可靠的方法来在设备连接到主服务器时更新设备,以复制和应用更改。
我怀疑事务日志是最好的方法,但我不知道它是怎么做的。
我想在客户端和客户端创建一个表。服务器:
OperationType | UserId | TimeStamp | Source | JsonData
但我不确切知道如何继续。我可以看一下示例实现吗?我不想要像Sync Framework那样繁重的通用解决方案。另外,我需要从obj-c,python客户端访问服务器 - 服务器是.net。
客户需要独立运营,因此我无法保留记录。
答案 0 :(得分:0)
在PostgreSQL上,最好的方法可能是使用Slony来处理实际更新(允许异步/离线方法),然后区分主服务器中的数据源和用于应用程序目的的权威信息。在这个结构中:
每个服务器都有自己的写入源表,并在普通操作过程中与主数据表一起查询。
每个服务器将其源表复制到主服务器的源表的分区,然后使用触发器将此数据复制到主表中,并复制到所有客户端。子数据库(如果我们可以调用它)然后在它们确认复制两种方式都成功之后截断了源表。