7 Punkte von xguru 2020-11-28 | 6 Kommentare | Auf WhatsApp teilen
  • So lässt sich SQLite mit den JSON-bezogenen Funktionen und Generated Columns wie eine Dokument-DB verwenden

  • Kombination von GENERATED ALWAYS und json_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

 
nicewook 2020-11-30

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.

  1. Zunächst verwendet man SQLite.

  2. Wenn Felder hinzugefügt werden müssen, nutzt man es auf diese Weise als Dokumenten-DB.

 
galadbran 2020-11-30

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.

 
xguru 2020-11-30

Wie Sie gesagt haben, könnte man es wohl dafür verwenden, benutzerdefinierte Nutzerfelder hinzuzufügen oder für ähnliche Zwecke.

 
ffdd270 2020-11-29

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 (...).

 
xguru 2020-11-30

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.

 
ffdd270 2020-12-01

Oh, danke. Dann sollte ich außer SQLite wohl auch die hier jetzt mal ausprobieren.