SQLREMOTE: неявный синхронизм подключенных объектов
-
11-12-2019 - |
Вопрос
Я ищу лучший способ синхронизации внешних ключевых отношений с 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
);
.
Есть ли лучший способ сделать это, может быть, со встроенной чековой целостности?
Решение
из документации:
CREATE PUBLICATION SalesRepData (
TABLE SalesReps
TABLE Customers
SUBSCRIBE BY rep_key
TABLE Contacts
SUBSCRIBE BY (SELECT rep_key
FROM Customers
WHERE Contacts.cust_key = Customers.cust_key )
);
.
Это будет ловить всех контактов клиентов для клиента продаж REP.
Тихое важное значение, кажется, что это необходимо обновить после обновления связи - E.g.Представитель продаж получает новых клиентов.Это должно быть сделано с AN перед триггером для обновления / вставки / удаления.