7 points par xguru 2020-11-28 | 6 commentaires | Partager sur WhatsApp
  • 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 ALWAYS et de 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 commentaires

 
nicewook 2020-11-30

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.

  1. Pour commencer, on utilise SQLite.

  2. Lorsqu’il faut ajouter des champs, on l’utilise comme une base de données documentaire de cette manière.

 
galadbran 2020-11-30

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.

 
xguru 2020-11-30

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.

 
ffdd270 2020-11-29

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

 
xguru 2020-11-30

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.

 
ffdd270 2020-12-01

Oh là là. Merci beaucoup. Bon, maintenant, il va falloir que j’essaie aussi ceux-là de temps en temps, pas seulement SQLite.