-
Cómo usar SQLite como si fuera una base de datos de documentos usando Generated Columns y funciones relacionadas con JSON
-
Combinando
GENERATED ALWAYSyjson_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 comentarios
¿También se puede usar así? Parece que permitiría aprovechar las ventajas de un RDBMS y, al mismo tiempo, obtener la flexibilidad de NoSQL para agregar o modificar campos menos comunes.
Por lo pronto, usar SQLite.
Cuando haya que agregar campos, usarlo como una base de datos documental de esta manera.
Puede que no sea igual a la columna generada que se mencionó, pero PostgreSQL y MySQL ya ofrecen columnas de tipo JSON y consultas para ese tipo, así que parece que también se pueden usar de forma similar.
Como dijiste, parece que se podría usar para cosas como agregar campos de usuario personalizados y ese tipo de usos.
Mmm... ¿no habrá alguna DB de documentos que haya salido para objetivos embebidos, como SQLite? SQLite me da un poco de presión porque en el fondo es SQL, OTL. Algo así como una versión Lite de MongoDB. Algo como MangoDB (...).
Para algo simple de clave-valor, está RocksDB https://github.com/facebook/rocksdb
Como mencionaste, para usarlo como base de datos de documentos está UnQLite https://unqlite.org/
Dicen que más o menos esos son rápidos y cómodos de usar.
Oh, gracias. Ahora tendré que probar estos también, no solo SQLite.