Solusi Update Data (PHP & MySQL)

Salam hangat semuanya, Langsung aja ane punya masalah gini, ane kan punya 2 tabel data yang saling berelasi, dimana terdapat 1 tabel data untuk menghubungkan relasi tersebut. Misalnya sebagai berikut:

- - - - - - - - - - - - - -
Tabel A
- - - - - - - - - - - - - -
Data A
Data B
Data C
- - - - - - - - - - - - - -

- - - - - - - - - - - - - -
Tabel B
- - - - - - - - - - - - - -
Data X
Data Y
Data Z
- - - - - - - - - - - - - -

- - - - - - - - - - - - - -
Tabel AB
- - - - - - - - - - - - - -
Tabel A | Tabel B
- - - - - - - - - - - - - -
Data A | Data X
Data B | Data X
- - - - - - - - - - - - - -
Data A | Data Y
Data C | Data Y
- - - - - - - - - - - - - -
Data A | Data Z
Data B | Data Z
Data C | Data Z
- - - - - - - - - - - - - -

Nah, yang ingin ane tanyakan, solusi yang tepat untuk mengupdate "Tabel AB" itu seperti apa ya langkahnya? Apakah: [1] Pertama kita hapus dahulu seluruh data pada "Tabel AB" dengan pengkondisian yang sudah di tentukan, misalnya dengan sql "DELETE * FROM `tabel_ab` WHERE `tabel_b` = 'X'", lalu selanjutnya kita menambahkan ulang datanya. [2] Menggunakan perintah-perintah SQL yang berkaitan, misalnya "REPLACE INTO/INSERT ON DUPLICATE KEY UPDATE". [3] Ada solusi lain yang punya masalah seperti ini?

Boleh sekalian minta keterangan pro & cons (Kelebihan/Kekurangan) dengan jawaban agan? Terima kasih sebelumnya...

avatar nurimansyah
@nurimansyah

98 Kontribusi 87 Poin

Diperbarui 8 tahun yang lalu

11 Jawaban:

screen desain tabel yg dari phpmyadmin aja,,,,

avatar switch
@switch

78 Kontribusi 23 Poin

Dipost 8 tahun yang lalu

Gini gan, jadi ane mau buat sistem modulasi. Nah, modulasinya berdasarkan privilege/hak akses. Yang mau ane tanyain, kalo untuk metode UPDATE tabel "module_privilege"-nya, pake apa ya bagusnya? Apakah pake cara yang kita hapus seluruh data berdasarkan nama privilege lalu insert kembali sesuai dengan privilege dan modul yang diinginkan, atau adakah cara lain yang tepat dalam kasus ini.

Berikut ini screenshot tabel datanya di mysql

Tabel Module [link]https://s31.postimg.org/heafsvqpz/Screen_Shot_2016_06_16_at_4_09_17_PM.png[/link]

Tabel Privilege [link]https://s31.postimg.org/gq1l9xs07/Screen_Shot_2016_06_16_at_4_09_39_PM.png[/link]

Tabel Module_Privilege https://s31.postimg.org/527jfe2vb/Screen_Shot_2016_06_16_at_4_09_43_PM.png

Btw, seluruh gambarnya ane upload di postimage, soalnya kalo di taro disini kegedean gambarnya.

Terima kasih...

avatar nurimansyah
@nurimansyah

98 Kontribusi 87 Poin

Dipost 8 tahun yang lalu

avatar switch
@switch

78 Kontribusi 23 Poin

Dipost 8 tahun yang lalu

PHPMyAdmin ane belum aktif yang fitur designnya gan. Ini ane buat aja:

avatar nurimansyah
@nurimansyah

98 Kontribusi 87 Poin

Dipost 8 tahun yang lalu

ane juga pernah ketemu yg semacam ini waktu mempelajari Workflow CMS Joomla, menurut ane bagus pake perintah SQL, soalnya ane pernah buat program mindah ratusan data ke email sekali pencet, besok" nya tempat Hostingnya nya DOWN, habis bilangnya Hosting unlimited ane jajal aja sekalian wkwkkwkw

avatar switch
@switch

78 Kontribusi 23 Poin

Dipost 8 tahun yang lalu

Jadi, maksud agan, memang kalo kasus kaya gini kita mesti: [1] Hapus seluruh data yang berkaitan dengan privilege. [2] Memasukkan data privilege kembali sesuai dengan yang diinginkan.

Itu semua pake perintah SQL kok, gitu kan?

avatar nurimansyah
@nurimansyah

98 Kontribusi 87 Poin

Dipost 8 tahun yang lalu

mungkin bisa di akalin lg desain DB nya, kayak ada yg d format JSON ato gimana gitu supaya lebih clean,,,,

avatar switch
@switch

78 Kontribusi 23 Poin

Dipost 8 tahun yang lalu

Iya, untuk pemanggilan data memang ane buat web-servicenya/APInya. Jadi bentuknya JSON. Cuman kemarin masih rada bingung untuk update data.

Misalnya tuh kan, ane tu punya halaman pengelolaan data hak akses, dimana data-datanya ini tergabung dari 2 join tabel, yaitu tabel module dengan tabel privilege, sehingga membentuk tabel module_privilege. Nah, kalo pas nambah data baru sih mudah, tinggal seleksi modul-modul yang ingin digunakan, terus pas saat di submit tinggal looping, dan insert data.

Nah, yang jadi permasalahan saat kondisi updatenya. Berarti memang kita harus menghapus dulu, lalu menambahkan data modul sesuai dengan yang kita pilih pada form modul kan. Dan tidak mungkin menggunakan perintah SQL "UPDATE", karena tidak ada proses updatenya.

Jadi, yang bisa ane simpulkan adalah, berarti kasus seperti ini selalu menggunakan 2 kali proses query, yaitu "DELETE" dan "INSERT". Bener ga?

avatar nurimansyah
@nurimansyah

98 Kontribusi 87 Poin

Dipost 8 tahun yang lalu

Jawaban Terpilih

kayaknya sih cuman bisa di clear terus insert ulang,,,

avatar switch
@switch

78 Kontribusi 23 Poin

Dipost 8 tahun yang lalu

Hehe, iya bener, ane juga search" pendapat mengenai masalah ini, dan memang solusinya sih cuman di clear dan insert ulang. Btw, thx replynya, sangat membantu gan :)

Thanks again...

avatar nurimansyah
@nurimansyah

98 Kontribusi 87 Poin

Dipost 8 tahun yang lalu

sama - sama gan :)

avatar switch
@switch

78 Kontribusi 23 Poin

Dipost 8 tahun yang lalu

Login untuk ikut Jawaban