laravolt/indonesia

Data tambahan untuk tiap tabel

uyab opened this issue · 14 comments

uyab commented

Contoh Kasus
Jon ingin menambahkan data kode pos di tabel desa/kelurahan. Di tempat lain, Dodo ingin menambahkan data luas wilayah dan jumlah penduduk untuk semua provinsi.

Usulan Solusi
Tambahkan satu kolom json di tiap tabel, yang bisa diisi sesuai kebutuhan oleh masing-masing developer.

uyab commented

Tambahkan sebuah kolom dengan nama meta dengan tipe data JSON di tiap-tiap tabel.

apa tipe data JSON ada di semua versi manajemen database mas?

uyab commented

@darkcyber iya, tidak semua DBMS punya, amannya jadi text saja? Tapi kalau text, tidak bisa memanfaatkan fungsi-fungsi built in JSON column, seperti searching dan virtual column. 🤔

saya dulu ada kasus mirip, saya buat text tapi input ke db nya harus di serialize dulu, begitupun ketika mau ditampilkan harus di unserialize, tapi gak yakin itu best practice. tapi kalo di generalkan memang seperti itu deh seharusnya.

untuk menambahkan data kodepos untuk di table Villages apakah ada opsinya ya?

uyab commented

@Titonu saat ini belum ada, silakan bikin migration dan seeder sendiri

kalo di siapin table meta kira kira bisa ngga ya mas @uyab ?

indonesia_..
..

indonesia_meta
..

indonesia_has_meta
..
uyab commented

@uyab berarti di masing masing nambah 1 kolom gitu ya mas, tapi handling buat yang ga support json column jadinya gimana ya mas seprti kata mas di atas

soal fungsi built-in json column. kalau di migration-nya dibuatin logic untuk membaca rdbmsnya apa, terus kalau support column nya dibuat json, tapi kalau tdk support dibuat text?

uyab commented

@rizkyarlin defaultnya dibikin text aja kalau gitu, kalau butuh json bisa publish migration + edit sendiri.

uyab commented

Saya biasa memakai library https://github.com/spatie/laravel-schemaless-attributes untuk handling schemaless column