2010-03-09 4 views
2

원격 MySQL 서버에서 데이터를 검색하는 iPhone 응용 프로그램을 개발 중입니다. 데이터베이스가 거대하기 때문에 응용 프로그램이 실행될 때마다 데이터를 다운로드하지 않고 단지 한 번만 데이터를 다운로드 한 다음 SQLite 데이터베이스와 동기화하고 싶습니다. (다시 다운로드 할 필요가 없습니다)서버에서 MySQL 서버 데이터베이스와 SQLite 데이터베이스를 동기화하는 방법은 무엇입니까?

원격 MySQL 서버의 업데이트이며 업데이트 된 데이터 만 다운로드합니다.

원격 MySQL 서버에 삽입 작업이있는 경우 기본 키 값을 비교하여 데이터베이스 테이블의 마지막 삽입 된 ID에서 식별 할 수 있습니다.하지만 삭제 및 업데이트 작업을 확인하여 최상의 효율성으로 작업을 다운로드하면됩니다. 삭제 또는 업데이트 작업의 결과로 최소 데이터가 필요합니까?

모든 도움과 제안을 부탁드립니다.

감사합니다.
짐.

+0

짐, 제발 당신이 어떻게 아이폰의 SQLite 데이터베이스에서 MySQL 서버 데이터베이스를 동기화 말해 주시겠습니까. – Nitin

답변

3

우선, 처음으로 큰 다운로드를하는 대신, 데이터베이스 사본으로 앱을 보내지 않는 이유는 무엇입니까? 그렇다면 걱정해야 할 점은 점진적인 업데이트입니다.

데이터베이스가 지속적으로 수정되지 않으면 가장 쉬운 방법은 쿼리 로그를 이용하는 것이라고 생각합니다. 모든 작업이 파일에 기록되도록 MySQL DB에서 쿼리 로깅을 켭니다. 그런 다음 iPhone에서 업데이트 된 데이터를 요청하면 로그 파일을 구문 분석하고 삽입, 업데이트 및 삭제를 설명하는 응답을 준비하기 만하면됩니다.

데이터베이스가 실시간으로 많은 사용자에 의해 수정되는 경우 쿼리 로그가 엄청나게 많으므로이 방법은 바람직하지 않습니다. 이 경우 데이터베이스의 createdOn/modifiedOn 타임 스탬프를 사용하여 iPhone 응답의 후보가되는 삽입 및 업데이트를 확인할 수 있습니다. 삭제의 경우, iPhone 앱이 인식 될 때까지 각 행을 "실제로 삭제되지 않음"으로 표시하거나 "삭제 된 데이터"라는 테이블을 생성하고 명시 적으로 삭제하지 않고 항목을 이동할 수 있습니다.

+0

감사합니다. 그게 정확히 내가 찾고있는거야. 내 경우에는 로그 파일이 업데이트를 얻는 데 확실히 작용할 것입니다. 다시 한 번 감사드립니다. – Jim

관련 문제