문제

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 )
);
.

이것은 영업 담당자의 고객을 위해 모든 고객 연락처를 잡을 것입니다.

조용한 중요한 것은 연결이 업데이트되면이 업데이트가 필요합니다. - 예를 들어,영업 담당자는 새로운 고객을 얻고 있습니다.이는 업데이트 / 삽입 / 삭제를위한 트리거를 사용하여 수행해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 dba.stackexchange
scroll top