2013-04-30 1 views
0

나는 둘 이상의 상대방 간의 요청을 처리하기위한 앱을 만들고 있습니다. 이러한 요청은 서버의 sqlite 파일에 저장됩니다. 어떤 당사자라도 요청을 받았는지 확인하기를 원하면 데이터베이스를 다운로드하고 해당 요청을 필터링합니다. 이 부분은 잘 작동합니다.다른 사람이 sqlite 데이터베이스를 덮어 쓰는 것을 피하는 방법

그러나 요청을 보내고 수정 된 sqlite 파일을 업로드 할 때 이전에 수행 한 작업과 달리 혼란스러워졌습니다. 정확한 시간에 데이터베이스를 업데이트하고 서로의 업데이트를 덮어 쓰려고하는 여러 당사자를 피하는 방법은 무엇입니까?

이전에 비슷한 것을 한 사람의 아이디어가 아니라 소스 코드 예제가 아닙니다.

고맙습니다.

+2

어. 전체 데이터베이스를 이리저리 이전하는 것보다 나 빠지지는 않습니다. 이 경로를 따르시겠습니까? – Kai

+0

내 회사 제품 제안을위한 포인트 또는 업 보스를 원하지 않기 때문에 답변이 아니라 댓글로 남겨 둡니다. 그런데 Zumero (나는 링크하지 않을 것입니다)는 클라이언트 측 SQLite 코드를 거의 수정하지 않고 이런 종류의 문제를 해결하기 위해 만들어졌습니다. 그것은 동기화, 병합, 동시 업데이트 등을 처리합니다. –

+0

Zumero는 정말 멋지게 보입니다. 나는 그것을 시도 할 것이다. 감사합니다 – YsB

답변

2

여러 사용자가 서버에서 데이터베이스를 다운로드하고 수정 한 다음 다시 보내서 (및 덮어 쓰기) 서버에서 데이터베이스를 업데이트하면 안됩니다. 이것은 느리고 명확하게 동시성 문제가 있습니다.

프런트 엔드 앱 서버를 데이터베이스 앞에 두는 것이 좋습니다. SOAP 웹 서비스 또는 편안한 http 서버와 같은 것. 일부 webApi 서버 옵션 : Node.js + express, Asp.net webapi, Ruby on Rails + Active Record - 다른 많은 것들이 있습니다.

+0

고맙습니다. 그것은 많은 도움입니다. 나는 초보자이지만 프로그래밍을 정말로 즐긴다. – YsB

0

SQLite는 임베디드 환경에 이상적입니다. 설정 등을 위해 데이터베이스를 응용 프로그램에 직접 연결할 수 있습니다. 일단 당신이하려고하는 것과 같은보다 전통적인 클라이언트/서버 아키텍처로 시작하면 SQLite가 이상적인 솔루션이 아닐 수도 있습니다. 업데이트가 적절한 방법으로 일어날 수 있도록 SQL 데이터베이스 파일을 교체하여 데이터베이스에 호출하지 통해 데이터베이스에

  • 추상 호출 : 나는 두 가지 옵션을 볼 수 있습니다. 이는 가져 오기/내보내기 기능을 구축하여 쉽게 수행 할 수 있습니다. 처음부터 데이터베이스를 가지고 있기 때문에 데이터베이스 전체를 옮기고 싶지는 않습니다.

  • MySQL과 같은 실제 SQL 서버를 사용하고이를 사용하여 클라이언트 응용 프로그램에서 연결하십시오. 그러나 인터넷 사이에서 SQL 서버에 액세스 할 수있게 만드는 것은 나쁜 생각입니다. 이것이 인트라넷 응용 프로그램이라면 괜찮을 것입니다.

요한.

+0

요한, 당신의 대답에 감사드립니다. 당신의 것이 bryanmac의 대답만큼 유용하기 때문에 나는 단지 하나의 대답만을 받아 들일 수 있습니다. – YsB

+0

그래, 브라이언 맥크와 내가 동시에 올린 것 같아. 걱정할 필요가 없기 때문에 다행입니다. – PurpleAlien

관련 문제