2008-10-08 9 views
1

나는 Outlook 연락처를 CDO를 통해 데이터베이스 (및 백)와 동기화하는 웹 응용 프로그램을 가지고 있습니다. DB에는 모든 연락처가 한 번만 포함됩니다 (이론적으로는 물론 이중 탭이 발생 함). Outlook에서 특정 연락처 (예 : 상호 작용 또는 이와 유사한 제품)를 보유한 사용자 수에 관계없이 연락처에 단일 변경 지점을 제공합니다.Outlook 연락처 동기화 - 동기화 할 올바른 개체를 식별하는 방법은 무엇입니까?

동기화 프로세스가 자동이 아니며 사용자가 초기화했습니다. 사용자가 연락처를 동기화하기로 결정하기 전에 임의의 시간 경과가 발생할 수 있습니다. 그 동안 다른 사용자가 이러한 연락처의 하위 집합을 업데이트했을 수 있습니다.

일반적으로,이 잘 실행,하지만 난이 근본적인 문제를 해결할 수 없었습니다 :

가 어떻게 doubtlessly 사서함에 연락처 개체를 식별 할을?

  1. 내가 PR_ENTRYID에 의존하지 수, 연락처 이동 또는 사서함 이동이 속성 변경.
  2. 연락처와 함께 이 복사되므로 내 ID (예 : DB 테이블 ID)에 의존 할 수 없습니다.
  3. 나는 과 같은 이름이나 전자 메일 주소와 같은 필드 에 절대적으로 의존 할 수 없으며 변경 및 업데이트 될 수 있습니다.

현재 1 (선호)과 2 (폴백) 조합을 사용합니다. 그러나 필연적으로 사용자는 주어진 PR_ENTRYID이 없으므로 사용자가 잘못된 연락처에 동기화하는 문제에 봉착하게되는 경우가 있지만 동일한 ID가있는 두 개의 ID (잘못된 ID가 선택됨)가 필연적으로 발생합니다.

아웃룩 싱크 (outlook-synching) 제품이 많기 때문에 문제를 해결할 수 있어야합니다.

답변

2

연락처 동기화를 수행하는 내부 Outlook 플러그인으로 극복 할 비슷한 문제가있었습니다. 나는 Outlook 개체에서 데이터베이스 ID를 고수하고 동기화 할 때 참조했다.

차이점은 우리 시스템에는 나중에 사용자가 해결할 수있는 중복 된 묶음이 있다는 것입니다. 그들은 병합되면 이전 기록을 삭제하고 새로운 ID와 함께 모든 새로운 정보로 전망을 업데이트합니다.

중복을 식별하기 위해 퍼지 매칭을 수행 할 수 있지만 중복 해상도는 대부분 시행 착오의 재미있는 문제입니다. 우리는 해시 코드로 정리 된 이름과 주소에 대해 levenshtein distance 알고리즘을 사용하여 "퍼지 (fuzzy)"매칭 로직을 성공적으로 구현했습니다.

행운을 비네, 내 동기화 경험은 다소 고통 스러웠다.

+0

아, 질문의 나이만으로도 이것이 사소한 문제가 아니라고 알려줍니다. 나는 데이터베이스 ID를 연락처에도 붙이지 만 연락처가 재사용 (동일한 위치, 다른 사람)하거나 동일한 회사의 새 연락처에 대한 템플릿을 만들기 위해 복사되면 도움이되지 않습니다. – Tomalak

+0

Up으로 투표했습니다. 적어도 나는 너의 동정심을 가지고있다. :-디 – Tomalak

관련 문제