2011-03-29 1 views
1

두 부분으로 구성된 응용 프로그램을 작성하고 있습니다. 데스크톱 응용 프로그램은 데스크톱 (아마도 AIR 응용 프로그램)과 iPhone에서 실행되는 iPhone 응용 프로그램에서 실행됩니다. 나는 iPhone 개발이 처음이다.데스크톱 응용 프로그램과 내 iPhone 응용 프로그램간에 SQLite 데이터베이스를 공유 할 수 있습니까?

두 앱 모두 정확히 동일한 sqlite 데이터베이스에서 작동합니다. 이상적으로 나는 어떻게 든 sqlite 데이터베이스 파일을 모바일 응용 프로그램의 Documents 폴더로 복사하고 거기에서 작업하고 싶습니다. 반대의 경우도 iTunes 동기화를 이용합니다.

정확히 어떻게합니까? 휴대 전화와 데스크톱 앱간에 동기화를 실행하는 더 나은 연습 방법이 있습니까? 그렇다면 최선의 방법에 대한 예가 있습니까?

대부분의 솔루션은 데이터베이스가 MySQL과 같은 별도의 형식으로 저장되어 있고 데이터를 직렬화 및 역 직렬화해야한다고 가정합니다. 난 그냥 같은 파일을 사용하고 파일을 복사하려고합니다.

+0

나는 여기에있는 다른 것들이 위에서 말했듯이 나는 iPhone 개발에 아주 새로운 것이라고 생각한다. 이 질문을 어떻게하면 두 응용 프로그램간에 가장 잘 의사 소통 할 수 있을까요? 데스크톱 응용 프로그램에서 웹 서버를 설정하고 전화 응용 프로그램을 http를 통해 연결해야합니까? 아니면 iTunes를 통해 전화 데이터베이스에 액세스 할 수 있습니까? 그렇다면 어떻게해야합니까? – Rudi

답변

3

SQLite는 단일 사용자 데이터베이스입니다. "데이터베이스 복사"경로로 이동하면 데이터가 손실 될 위험이 있습니다. 데스크톱 사용자가 데이터를 추가하고 iOS 사용자가 데이터를 추가하면 파일을 복사 할 때 다른 사용자의 데이터가 손실됩니다.

데이터베이스 간의 변경 사항을 식별하고 동기화 상태를 유지하는 자체 "동기화"알고리즘을 구현할 수 있습니다. 이것은 고통이 될 수 있지만 일반적인 해결책이며 내가 권하는 것입니다. 데스크탑/iOS 앱에서이 방법을 사용했습니다.

데이터베이스 서버를 사용할 수 있지만 연결할 때는 네트워크 액세스가 필요합니다.

+0

그러면 두 응용 프로그램간에 통신 할 것을 어떻게 제안합니까? 인터넷 접속이 필요없는 것을 선호합니다. – Rudi

+0

내가 말했듯이 "동기화"방법을 권하고 싶지만 두 장치가 동일한 Wi-Fi 네트워크에 적어도 있어야합니다. 인터넷 액세스가 필요하지 않을 것입니다. –