SQLite als Dokument-DB verwenden
(dgl.cx)-
So lässt sich SQLite mit den JSON-bezogenen Funktionen und Generated Columns wie eine Dokument-DB verwenden
-
Kombination von
GENERATED ALWAYSundjson_extract
CREATE TABLE t ( body TEXT, d INT GENERATED ALWAYS AS (json_extract(body, '$.d')) VIRTUAL);
INSERT INTO t VALUES(json('{"d":"42"}'));
SELECT * FROM t WHERE d = 42;
{"d":"42"}|42
6 Kommentare
Wäre das auch so nutzbar? Man könnte damit wohl die Vorteile eines RDBMS mitnehmen und zugleich die NoSQL-Flexibilität für das Hinzufügen und Ändern weniger wichtiger Felder erhalten.
Zunächst verwendet man SQLite.
Wenn Felder hinzugefügt werden müssen, nutzt man es auf diese Weise als Dokumenten-DB.
Es ist vielleicht nicht genau dasselbe wie die erwähnten generierten Spalten, aber PostgreSQL und MySQL bieten bereits JSON-Typ-Spalten und Abfragen für diesen Typ, sodass man sie vermutlich auf ähnliche Weise nutzen kann.
Wie Sie gesagt haben, könnte man es wohl dafür verwenden, benutzerdefinierte Nutzerfelder hinzuzufügen oder für ähnliche Zwecke.
Hm … Gibt es unter den Dokumenten-DBs vielleicht keine Datenbank, die wie SQLite für Embedded-Ziele gedacht ist? Bei SQLite habe ich ein bisschen Hemmungen, weil die Grundlage eben SQL ist, OTL. So etwas wie eine Lite-Version von MongoDB. So was wie MangoDB (...).
Für einfache Key-Value-Anwendungen RocksDB https://github.com/facebook/rocksdb
Wie Sie gesagt haben, für den Einsatz als Dokumenten-DB UnQLite https://unqlite.org/
sollen diese in etwa schnell und einfach zu verwenden sein.
Oh, danke. Dann sollte ich außer SQLite wohl auch die hier jetzt mal ausprobieren.