7 poin oleh xguru 2020-11-28 | 6 komentar | Bagikan ke WhatsApp
  • Cara menggunakan SQLite seperti Document DB dengan memanfaatkan Generated Columns dan fungsi terkait JSON

  • Menggabungkan GENERATED ALWAYS dan 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 komentar

 
nicewook 2020-11-30

Apakah ini juga bisa dipakai seperti ini? Sepertinya kita bisa mengambil keunggulan RDBMS sambil tetap mendapatkan fleksibilitas NoSQL untuk penambahan atau perubahan field yang sifatnya minor.

  1. Pertama, gunakan SQLite.

  2. Jika perlu menambahkan field, gunakan seperti ini sebagai document DB.

 
galadbran 2020-11-30

Mungkin tidak persis sama dengan generated column yang disebutkan, tetapi PostgreSQL dan MySQL juga sudah menyediakan kolom bertipe JSON serta kueri untuk tipe tersebut, jadi sepertinya bisa digunakan dengan cara yang mirip.

 
xguru 2020-11-30

Seperti yang Anda katakan, sepertinya ini bisa digunakan untuk hal seperti menambahkan field pengguna kustom atau semacamnya.

 
ffdd270 2020-11-29

Hmm.. di antara document DB, apakah tidak ada DB yang dirilis untuk target embedded seperti SQLite? Karena SQLite pada dasarnya SQL, jadi terasa agak membebani OTL. Semacam versi Lite dari MongoDB. Mungkin MangoDB (...).

 
xguru 2020-11-30

Untuk key-value sederhana, RocksDB https://github.com/facebook/rocksdb

Seperti yang Anda sebutkan, untuk document DB ada UnQLite https://unqlite.org/

Katanya, keduanya cukup cepat dan mudah digunakan.

 
ffdd270 2020-12-01

Ooh. Terima kasih. Sekarang sepertinya saya juga harus coba pakai mereka ini sesekali, bukan cuma SQLite.