Transcript for:
Komunikasi Efektif ke Database dengan UUID

Oke teman-teman, jadi ini sebenarnya pertanyaannya sama isi dari pertanyaannya itu agak sedikit nggak nyambung ya. Oke, gimana cara komunikasi ke database yang efektif? Nah ini maksudnya mungkin saya kira tadinya pertanyaannya maintain koneksi ke database dan sebagainya. Ternyata detail pertanyaannya beda. Oke kita baca. Saya ada case kalau ingin menyimpan data ke database. Casenya ID menggunakan random generated dari UUID. Karena cache-nya ID-nya primary key dan dia harus unik. Oke, jadi selain UUID sebenarnya banyak ya cara membuat unik ya. Ada auto-increment, pakai sequence, dan lain-lain. Oke, mungkin flow yang selama ini yang diimplementasikannya adalah yang pertama di user controller ya. Setelah generate UUID, saya melakukan count atau find ke database dulu. Kalau misalnya ada, maka saya akan melakukan generate UUID kembali hingga 0 ya, maksudnya 0 itu mungkin gak dapat dari database-nya ya, nah belum terpakai nah kalau proses sebelumnya sudah selesai baru saya insert ke database, jadi kalau misalnya generate UUID kalau misalnya 0 di database-nya baru dia bisa insert gitu ya lalu di bagian kode user service-nya saya deklarasikan fungsi terpisah dalam satu file, ada metode untuk find atau count untuk mengecek ID-nya ada atau enggak sama metode insert Nah kalau saya amati atau berarti ketika saya melakukan create new user, berarti saya melakukan dua kali komunikasi ke database, yaitu pertama find atau count dulu dan yang kedua adalah insert. Apakah cara seperti ini sudah benar dalam case ini atau ada cara lain? Mohon pencerahannya. Terima kasih yang sebanyak-banyaknya. Oke, sebenarnya kalau teman-teman pakai UUID, UUID itu singkatan dari Universal Unique Identifier ya. Jadi itu dibilang universal, unik. Jadi kalau kita bikin UUID itu kayak ada jaminan secara universal. Itu tidak akan mungkin double ya. Artinya bakal unik. Jadi harusnya hal seperti ini nggak perlu dipusingkan. Ini bahkan dijawab juga sama orang lain di sini. Sama Abitama. Ini nggak tepat kalau kita mikirin apakah nanti bakal ada duplikat UUID-nya. Nggak mungkin. Karena di sini ada artikel yang menarik. Ini artikelnya lucu juga nih. Di sini dibilangnya, apakah kamu khawatir ya soal saling timpa antara UUID? Nah, your data center is more likely to be destroyed in a nuclear strike. Kayaknya kemungkinan lebih besarnya data center kita di nuklir gitu ya. Jadi, priorities what matters. Jadi, artinya apa? Ini maksudnya mungkin joke? Artinya apa? Artinya ini nggak mungkin... terjadi ya kalau kita UUID even di mesin yang sama pada millisecond yang sama itu gak mungkin hasil UUID nya akan sama apalagi kalau mesinnya nanti beda dan millisecond nya pun sama gitu ya itu gak mungkin sama karena di dalam UUID itu ada kombinasi bahkan random nya gitu ya ada kombinasi millisecond nya dan lain-lain jadi banyak banget gitu ya yang dicek di UUID sehingga untuk memastikan bahwa dia tidak akan mungkin duplikat. Jadi dibanding teman-teman mikirin, aduh saya kayaknya harus query dulu ke database gitu ya. Kalau misalnya nggak ada, baru saya insert kayak gitu ya. Nah dibanding kayak gitu, yaudah nggak usah mikirin. Toh kalau pun misal aja ya, ini tiba-tiba kejadian aneh gitu ya, gaib gitu ya. Tiba-tiba misalnya UID-nya duplikat. Toh ketika nge-insert pun pasti gagal. Karena kan primary key-nya pasti sudah ada ya. Jadi nanti bakal error duplikat primary key. Jadi kita gak usah pusing lagi Kalau duplicate primary key yaudah tinggal Throw error gitu ya Abis itu ya tinggal kita log aja di aplikasi kita Jadi sesimpel kayak gitu Jadi gak usah dipikirin lagi Ya mirip kayak gini Misalnya teman-teman ada orang Misalnya kita mau nambah satu kolom unik gitu ya Di email Di usernya Kalau teman-teman misalnya Mikirin aduh apakah saya harus query dulu Ya bisa aja query dulu gitu ya Tapi teman-teman bisa langsung insert gitu ya Tapi kan nanti bakal error nih Duplicate Err di kolom email, tapi teman-teman tinggal bilang aja, oh ternyata emailnya duplikat artinya kamu udah pernah masukin data dengan email ini gitu ya, nah tinggal kita lakukan itu aja jadi dibanding kita komunikasi dua kali gitu ya, nah itu mendingan teman-teman ya langsung aja insert, apalagi UUID ya, UUID itu udah dijamin harusnya ya, dijamin akan selalu unik ya, jadi itu jawaban singkatnya gak perlu terlalu khawatir kalau misalnya kita pakai yang memang jelas-jelas secara universal itu adalah Unique.