我正在寻找将外键关系与 SQLRemote 同步的最佳方法。所以有这两个表
CREATE TABLE table1(
id integer not null default autoincrement,
name varchar(40) NOT NULL,
primary key (id)
);
CREATE TABLE table_items(
id integer NOT NULL default autoincrement,
name CHAR(40) NOT NULL,
table_1_id integer NOT NULL,
cl1 bit default 0,
cl2 bit default 0,
FOREIGN KEY ( table_1_id )
REFERENCES table_1( id ),
PRIMARY KEY (id));
可能实施带有发票项目的发票。cl1 和 cl2 应触发哪个客户端应与此数据集同步。但现在我想知道,同步 table_1 相应数据的最佳方法是什么。
第一种方法是将 cl1 和 cl2 字段也放入 table_1 并将它们添加到 pubcliation,因此发布看起来有点像:
CREATE PUBLICATION sync_cl1 (
TABLE table_1,
TABLE table_items
WHERE cl1 = 1
);
CREATE PUBLICATION sync_cl2 (
TABLE table_1,
TABLE table_items
WHERE cl1 = 2
);
有没有更好的方法可以通过集成完整性检查来做到这一点?
看来这可以通过发布内的子查询来完成。
从文档:
这将捕获销售代表客户的所有客户联系人。
似乎很重要,一旦连接更新,这就需要更新——例如,销售代表正在获得新客户。这需要使用 UPDATE/INSERT/DELETE 的 BEFORE 触发器来完成。