Tech: Jajahan, apa yang aku belajar daripadanya.

Jajahan adalah satu senarai yang aku kumpulkan daripada beberapa sumber yang kebanyakannya berdasarkan data daripada DDSA (Data Direktori Sektor Awam) oleh Mampu. Walaupun begitu ada beberapa data yang aku kira tidak berapa jelas di dalam DDSA dan memerlukan diambil data daripada tempat lain. Tujuan utama adalah untuk memudahkan kerja aku sendiri dalam membuat satu boilerplate (plat dangdang adalah terlalu pelik) untuk digunakan dalam semua projek yang aku buat terutamanya melibatkan sektor awam.

Antara sebab kenapa aku gunakan data daripada DDSA sebagai asas adalah untuk memudahkan kerja-kerja intergrasi dan migrasi data apabila diperlukan kelak dan tidak menyebabkan orang akan mengutuk aku berbakul-bakul di kemudian hari.

jajahan baharu

Tetapi daripada projek mudah ini terdapat beberapa perkara yang aku pelajari daripadanya;

Kod negara 3 aksara ada banyak

Terdapat paling kurang tiga jenis kod negara 3 aksara yang digunakan secara meluas di dalam dunia ini.

  1. ISO
  2. IOC
  3. FIFA

Perbezaan ini juga menyebabkan kiraan negara adalah berlainan mengikut kaedah kiraan. Sebagai contoh England dan Scotland dikira sebagai dua negara yang berbeza di FIFA tetapi dikira sebagai satu negara yang sama di dalam ISO iaitu The United Kingdom Of Great Britain And Northern Ireland. Perbezaan juga dapat dilihat kadang kala kod ISO, IOC dan FIFA berbeza di antara satu sama lain seperti IDN (ISO & IOC) dan INA (FIFA) untuk Indonesia.

Kaedah pemansuhan dan penambahan data baru

Aku tidak nampak keperluan ini pada awal projek tetapi kini nampak lebih lagi untuk data-data yang selalu berubah seperti DUN dan Parlimen. Untuk jangka masa pendek tiada masalah tetapi untuk jangka masa panjang yang melibatkan pemecahan mahupun penyatuan antara kawasan akan menyebabkan data sukar untuk dipantau. Hal ini lebih bermasalah apabila penyatuan antara dua kawasan seperti Dun.

Jangan jadikan Kod DDSA sebagai Primary Key

Aku cadangkan ini atas dua perkara

1. Kod DDSA tidak konsistan

Pengalaman mengajar, kod DDSA tidak pernah konsistan. Paling tidak setakat mana yang aku pernah lalui. Perubahan demi perubahan, struktur penyimpanan data yang bercanggah antara satu sama lain. Tidak dinafikan bahawa mereka telah membetulkan banyak data tetapi aku tak pasti adakah akan ada lagi perubahan drasktik atau tidak. Maka jangan terlalu bergantung pada kod DDSA sebagai primary key.

2. Kod DDSA ada padding.

Kebanyakkan kod DDSA mempunyai padding seperti 09 untuk negeri Perlis dan 0102 untuk daerah Johor Bahru dan menyimpannya di dalam bentuk int adalah amat tidak digalakkan. Aku cadangkan jadikan kod DDSA ini sebagai satu field baharu dan diletakkan sebagai berjenis string.

3. Kod DDSA Bandar Sarawak ada 7 aksara

Semua kod DDSA bandar untuk negeri lain mempunyai 6 aksara iaitu;

  1. 2 aksara negeri
  2. 2 aksara daerah
  3. 2 aksara bandar

Tetapi untuk sarawak

  1. 3 aksara bandar menjadikannya tidak konsistan (sekali lagi).

Kesimpulan

Aku kini dalam proses membuat kemaskini senarai kod untuk Jajahan versi 2 iaitu akan memasukkan beberapa data tambahan seperti kod FIFA dan IOC untuk negara, koordinat umum untuk semua data untuk memudahkan membuat GIS untuk projek yang memerlukan pemetaaan visual data dan beberapa perkara lain. Aku mulakan dulu dengan sistem dalaman dahulu dan kemudiannya akan aku jadikan sebagai satu pakej untuk boleh ditarik menggunakan composer.

Kemudian untuk versi 3 aku akan cuba untuk membuat lebih eksperimen menggunakan datatype json yang aku kira sudah disokong dengan baik secara asasnya untuk MariaDB 10.2 dan MySQL 5.7.

Jajahan via Github.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.