2017-03-14 1 views
0

iOS에서 키 값 저장소 데이터베이스를 찾고 있습니다. 그것은 sqlite를 기반으로해야하므로 YapDatabase이 좋은 선택 인 것 같습니다.YapDatabase는 단일 테이블을 사용하여 데이터를 저장합니다.

그러나 YapDatabase는 "The main database table is named "database""을 인용하기 위해 단일 테이블 만 사용합니다. CREATE TABLE "database2" ("rowid" INTEGER PRIMARY KEY, "collection" CHAR NOT NULL, "key" CHAR NOT NULL, "data" BLOB, "metadata" BLOB). 그래서 같은 열에 다른 유형의 객체를 저장하는 것에 대해 우려하고 있습니다.

예를 들어 채팅 앱에 YapDatabase를 사용하여 각 메시지를 |collection|key|object|metadata|에 저장할 계획입니다. 각 메시지는 키로 사용되는 고유 한 ID를 가지며 메시지 내용은 일반적으로 객체로 사용되는 nstring이며 일부 다른 데이터와 함께 타임 스탬프는 메타 데이터로 사용됩니다. YapDatase 작성자가 here이라고 대답 한 것과 같습니다.

때때로 사진이 전송됩니다. 이미지는 작고, 일반적으로 몇 백 킬로바이트 정도입니다. 파일로 저장하고 싶지 않습니다. 블롭이 적절하다고 생각하기 때문에 이미지를 저장하는 것이 좋습니다.

그러나 YapDatabse를 사용하면 정상적인 텍스트 메시지와 동일한 테이블에 저장됩니다. 그렇다면 내 텍스트 메시지를 모두 찾은 것처럼 어떤 쿼리를 어떻게 할 수 있습니까?

내 관심사가 유효합니까 (다른 유형의 개체를 같은 열에 저장하는 것)? 분리 된 테이블에 저장해야합니까? 그렇다면 어떻게? 그렇지 않다면, 어떻게 내 모든 문자 메시지를 쉽게 찾을 수 있습니까?

답변

0

키/값 저장소의 전체적인 점은 값을 식별하기 위해 키만 사용한다는 것입니다. 따라서 메시지와 그림을 같은 저장소에 저장하려면 서로 다른 키가 있어야합니다.

데이터를 별도의 테이블에 저장하려면 실제로 SQLite와 같은 테이블이있는 데이터베이스를 사용하십시오.

+0

키 - 값 저장소를 사용한다면 기본 테이블에 대해 전혀 염려 할 필요가 없다고 제안 했습니까? – Qiulang

+0

아니요, 기본 테이블에 대해 걱정하지 않으려는 경우에만 키 - 값 저장소를 선택해야한다고 제안했습니다. –

관련 문제