-
Cara menggunakan SQLite seperti Document DB dengan memanfaatkan Generated Columns dan fungsi terkait JSON
-
Menggabungkan
GENERATED ALWAYSdanjson_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
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.
Pertama, gunakan SQLite.
Jika perlu menambahkan field, gunakan seperti ini sebagai document DB.
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.
Seperti yang Anda katakan, sepertinya ini bisa digunakan untuk hal seperti menambahkan field pengguna kustom atau semacamnya.
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 (...).
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.
Ooh. Terima kasih. Sekarang sepertinya saya juga harus coba pakai mereka ini sesekali, bukan cuma SQLite.