2012-07-26 2 views
1

두 테이블 간의 조인 결과와 단일 테이블을 동기화하려고합니다. 나는 운동을 위해 이러한 dbs를 설계했습니다 (EQUI JOIN은 PERSON.AddressId와 ADDRESS.Id 사이에 있습니다) :스키마가 서로 다른 단일 테이블에서 2 개의 테이블 병합

dbs 및 동기화 준비는 어떻게 수행합니까?

지금까지 다른 테이블 이름, 다른 열 이름 또는 열 제거와 같은 일반적인 시나리오에 대한 몇 가지 예를 만들었습니다.

어떻게 달성 할 수 있습니까?

은 -> FIRST DB <-

담당자 :

-> 아이디 (PK, INT, null이 아닌)

-> 이름 (NCHAR (10), null가 아닌)

-> 성 (NCHAR (10), 널되지 않음)

-> AddressId (FK, INT, 널되지 않음)

,

주소 :

-> 아이디 (PK, INT, null이 아닌)

-> 스트리트 (널 (null) NCHAR (10),하지)

-> 도시 (NCHAR (10),하지 널 (null))

-> 국가 (NCHAR (10), null이 아닌)


-> SECOND DB <-

고객 :

-> 아이디 (PK, INT, null이 아닌)

-> 이름 (NCHAR (10), null이 아닌)

-> 성 (NCHAR (10)) 널 (null)

하지 -> 주소 (NCHAR (10), null이 아닌)

-> 도시 (NCHAR (10), null이 아닌)


답변

0

필자가 문서에서 알 수있는 한, 스키마는 Sync가 작동하도록 일치시켜야합니다. DbSyncTableDescription의 GlobalName 속성을 사용하여 동일한 스키마이지만 이름이 다른 테이블간에 동기화 할 수 있습니다. 난 당신이 최고에 (또한 제 DB에)보기로하고 "고객"을 만들어, 두 번째 DB에 사람과 주소를 생성하여 제공 될 거라고 생각이 특정 상황에

http://jtabadero.wordpress.com/2011/05/08/synching-tables-with-different-table-names/

: JUNET의 게시물을 참조 두 테이블을 통합 된 방식으로 제시하십시오.

+0

답장을 보내 주셔서 감사합니다. 이미 JuneT의 게시물을 읽었습니다. 다른 이름은 문제가 아닙니다 ... 문제는 참여를 수행하는 방법입니다 ... 당신이 제안한 해결책은 옳고 똑똑하지만, 불행히도 그것을 채택 할 수는 없습니다. 두 번째 DB에 사람과 주소를 추가 할 수 없도록 기존의 db 스키마를 변경할 수 없습니다! – ufo

+0

@jfish를 사용하면 다른 스키마도 동기화 할 수 있습니다. – JuneT

+0

동기화 범위에서보기를 사용할 수 없습니다. @JuneT 그냥 내 대답 (내가 즉시 삭제)에 대한 의견에 똑바로 나를 설정했습니다. "테이블 수준에서 변경 내용 추적이 수행되며 어떤 추적 테이블이보기에서 사용됩니까? 변경 내용이 있으면보기에서 어떻게 알 수 있습니까?" –

관련 문제