-
Comment utiliser SQLite comme une base de données documentaire à l’aide des colonnes générées et des fonctions liées à JSON
-
Combinaison de
GENERATED ALWAYSet dejson_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 commentaires
Est-ce que cela pourrait aussi s’utiliser ainsi ? On pourrait profiter des avantages d’un SGBDR tout en conservant la souplesse NoSQL pour l’ajout ou la modification de champs mineurs.
Pour commencer, on utilise SQLite.
Lorsqu’il faut ajouter des champs, on l’utilise comme une base de données documentaire de cette manière.
Ce n’est peut-être pas exactement la même chose que les colonnes générées mentionnées, mais PostgreSQL et MySQL proposent déjà des colonnes de type JSON ainsi que des requêtes pour ce type, donc il semble possible de les utiliser de façon similaire.
Comme vous l’avez dit, je pense que cela pourrait être utilisé pour ajouter des champs utilisateur personnalisés ou pour ce genre d’usage.
Hmm… parmi les bases de données documentaires, il n’y en a pas une conçue pour l’embarqué comme SQLite ? SQLite a des bases SQL, donc ça me met un peu de pression OTL. Une version Lite de MongoDB. Un truc du genre MangoDB (...).
Pour le simple key-value, il y a RocksDB https://github.com/facebook/rocksdb
Comme vous l’avez mentionné, pour une base de données orientée documents, il y a UnQLite https://unqlite.org/
On dit que ce sont des options assez rapides et faciles à utiliser.
Oh là là. Merci beaucoup. Bon, maintenant, il va falloir que j’essaie aussi ceux-là de temps en temps, pas seulement SQLite.