이 질문은 코드에 대한 아키텍처와 아이디어에 대해 자세히 설명합니다.PK/FK 용 시간별 동기화, 분산 데이터베이스 용 솔루션/디자인
문제 : 모든 것을 저장하는 백엔드 기본 DB가 있습니다. 그런 다음 사용자/장치에 대한 관련 데이터 만 저장하는 프론트 엔드 로컬 데이터베이스 (SQLLite 또는 유사)가 있습니다.
사용자는 프론트 엔드에서 데이터를 생성 할 수 있습니다. 그러나 여러 사용자가 같은 종류 (예 : 영수증)를 동시에 만들 수 있으며 간단한 int autoincrement PK를 사용하면 백엔드에서 충돌이 발생합니다.
제안 된 솔루션입니다 : 우리는 PK가 구성되어 복합 PK, 사용 :에, 논리적으로는의 DeviceID 및 사용자 ID는 FK해야 이제 -autoincrement 정수 -device의 ID - 사용자 ID
을 장치 및 사용자의 테이블, 그러나 몇 가지 이유로, 각 프런트 엔드 장치에 모든 장치/사용자를 저장할 수 없으므로 FK가 문제가됩니다.
제안 된 솔루션은 프론트 엔드에서 FK req를 제거하고 백엔드에서만 데이터 무결성을 확인하는 것이지만 위험/이득이 그만한 가치가 있는지는 잘 모르겠습니다.
누가 배포 한 후에이 시점에 도달했거나 경험이 있습니까? 당신의 생각은 무엇입니까? 대단히 감사합니다.
SQLite는 UUID 또는 GUID 기능을 제공하지 않지만 대부분의 프로그래밍 언어는 이제 수행합니다. 따라서 응용 프로그램 코드에서 GUID를 생성 한 다음 SQLite 데이터베이스에 저장할 수 있습니다. 당신은 * C에서 함수를 만들어서 SQLite로 컴파일 할 수 있지만, 보통 그것이 가치있는 것보다 더 많은 문제가 있다고 생각합니다. –
알아두면 좋을 것 같습니다. 감사! –