2017-03-14 1 views
0

Ich bin auf der Suche nach einer Schlüsselwertspeicher-Datenbank auf iOS. Es sollte auf sqlite basieren, so scheint YapDatabase eine gute Wahl zu sein.YapDatabase verwendet nur eine einzige Tabelle zum Speichern von Daten

Aber ich finde YapDatabase verwendet nur eine einzige Tabelle, um "The main database table is named "database"" zu zitieren: CREATE TABLE "database2" ("rowid" INTEGER PRIMARY KEY, "collection" CHAR NOT NULL, "key" CHAR NOT NULL, "data" BLOB, "metadata" BLOB). Ich sorge mich darum, verschiedene Arten von Objekten in derselben Spalte zu speichern.

Zum Beispiel plane ich, YapDatabase für meine Chat-App zu verwenden und jede Nachricht in |collection|key|object|metadata| zu speichern. Jede Nachricht hat eine eindeutige ID, die als Schlüssel verwendet wird, Nachrichteninhalt ist normalerweise nstring, der als Objekt verwendet wird, Zeitstempel mit anderen Daten werden als Metadaten verwendet. Genau wie YapDatase Autor beantwortet here.

Manchmal werden Bilder gesendet. Die Bilder sind klein, normalerweise um einige hundert kb, ich möchte sie nicht als Dateien speichern, ich glaube, sie sollten als Blob gespeichert werden.

Aber wenn ich YapDatabase verwenden, werden sie in der gleichen Tabelle wie meine normalen Textnachrichten gespeichert. Dann wie kann ich eine Abfrage wie, sagte alle meine Textnachrichten finden?

Ist mein Anliegen gültig (verschiedene Typen von Objekten in derselben Spalte speichern)? Muss ich sie in getrennten Tabellen speichern? Wenn ja, wie? Wenn nicht, wie finde ich alle meine Textnachrichten leicht?

Antwort

0

Der Schlüssel zu einem Schlüssel/Wert-Speicher besteht darin, dass nur die Schlüssel zum Identifizieren der Werte verwendet werden. Wenn Sie also Nachrichten und Bilder im selben Geschäft speichern möchten, müssen Sie sicherstellen, dass sie unterschiedliche Schlüssel haben.

Wenn Sie Daten in separaten Tabellen speichern möchten, verwenden Sie eine Datenbank, die tatsächlich über Tabellen verfügt, wie SQLite.

+0

Also haben Sie vorgeschlagen, wenn ich den Schlüssel-Wert-Speicher verwenden sollte, sollte ich mir keine Gedanken über die zugrunde liegende Tabelle machen? – Qiulang

+0

Nein, ich habe vorgeschlagen, dass Sie nur dann einen Schlüssel/Wert-Speicher auswählen sollten, wenn Sie sich keine Gedanken über die zugrunde liegende Tabelle machen wollen. –

Verwandte Themen