| saya mau sharing sekaligus mau tanya nih, tp #OOT dikit ya.
Begini saat saya sedang diskusi ringan dengan salah satu dosen saya mengenai database.
Ceritanya gini, semisal saya membuat suatu tabel pada database, yang mana pada tabel tersebut terdapat sebuah field dengan nama id, tipe data integer, length 8, Auto Increment, dan PK.
secara nyata kalo kita akan menambahkan data pada tabel tersebut, maka otomatis ID itu akan bertambah 1 kan, semisal data ID nya adalah 1 2 3 4 5
nah ternyata saya akan medelete data dengan ID 3, kemudian saya tambahkan data lagi, maka strukturnya kan akan menjadi seperti ini kan 1 2 4 5 6
disana terlihat ID 3 tersebut kosong/terlompati karena sudah dihapus, nah bisa kagak kita mensetting ID tersebut agar ID yang kosong/terlompati tersebut dikembalikan lagi agar nanti saat penambahan data lagi, strukturnya menjadi 1 2 3 4 5 6
catatan : penambahan ID yang kosong tersebut dilakukan dalam koding aplikasi, bukan secara manual pada PHPMyAdmin. |
|
| izin nyimak. |
|
| #gelarTikar simak dari kemarin saya bertanya2 soal ini juga :D |
|
| Mengapa namanya ID, karena identity atau untuk identifikasi.
Bukankah dengan kosong/terlompati sekalipun peran nya sebagai identity tetap berjalan, kenapa harus di ubah setiap penambahan data atau penghapusan data ??? Tujuannya untuk apa ????
Terus keterkaitannya / relasi nya dengan tabel-tabel yang lain bagaimana ??? Apa malah tidak menjadi berpengaruh terhadap relasi terhadap tabel lain, jika strukturnya mau diubah ??? |
|
| katakanlah kita punya sejuta row data, dan dihapus sebanyak 100 row secara random. bisa saja kita buat seperti skenario di atas tapi tentunya dengan mempertaruhkan performance aplikasi |
|
| Katakanlah : kita punya sejuta row data, dan tabel kita berelasi dengan 8 tabel yang lain . Bagaimana jika skenarionya demikian ??? |
|
| ini hanya untuk menambah wawasan saja mas Mas Suwondo, dan tidak ada kaitannya dengan aplikasi apapun.
Karena pertanyaan ini yang mengajukan adalah seorang professor, yang tidak ada kerjaan untuk diteliti.
Saya batasi permasalahannya adalah hanya ada 1 tabel saja, dan itu digunakan untuk penelitian, bukan untuk membangun aplikasi. |
|
| sebenarnya kan bisa aj. pertama harus cek jumlah row apakah sama dengan max(ID). kalau tidak sama lakukan iterasi sebanyak max(ID) untuk menemukan ID yang hilang. |
|
| Kalau secara teori yang juga sangat bermanfaat untuk aplikasi, saya malah lebih setuju dengan model soft deletion. Di mana tidak ada data yang benar-benar dihapus, melainkan hanya dengan pemberian flag status : active / inactive. Jadi tinggal update data aja untuk data yang dihapus. |
|
| jawabannya tidak bisa :D . untuk relasi antar table yg tidak strict semacam myisam, kalo tidak dibuat demikian akan menganggu data integrity |
|
| tapi kita bisa membuat sendiri mekanisme untuk auto increment, dan hal diatas jadi mungkin dilakukan |
|
| terus untuk mengembalikan nilai yang hilang gimana om Yaddi Surahman?
Mas Suwondo memang benar mas penelitian harus yang bermanfaat, tapi mungkin sekarang pertanyaan itu muncul dan mungkin kita beranggapan itu pertanyaan yg membuang2 waktu saja. tapi bagi sebagian orang yang menyukai penelitian untuk pribadinya akan merasa tertantang untuk mencoba |
|
| gan, fungsi Auto Increment itu adalah mengeset agar automatic gunanya untuk audit sistem metode ini bagus karna setiap inputan yang sudah tersimpan tidak boleh di delete menurut para auditor sistem. |
|
| ya ga bisa, kecuali ada tabel temporer untuk menampung data yang telah di hapus. kalau saya sih tidak pernah mendelete data, hanya ngubah status saja. sama kayak om Mas Suwondo |
|
| asumsinya begini, kita tidak hanya mengetahui ID yang kosong saja, tapi kita harus bisa mengembalikan ID yang kosong tersebut jika akan ada penambahan sistem.
dan 1 hal gelitikan itu muncul ketika akan sidang thesis. wkwkwkkk :-P |
|
| semuanya memang seperti itu mas, semua data yg di delete akan di tampung di tabel temporary.
nah pertanyaan ini adalah pertanyaan diluar kebiasaan kita sebagai programmer atau DBA. |
|
| Rasanya soft deletion merupakan jawaban yang cukup mengena. Tidak peduli apakah soft deletion itu berarti dicatat di tempat lain, dibuatkan tabel temporernya, dibuatin tabel memory nya, atau sekedar di beri flas status aja. Tetapi konsep dasarnya adalah tetap : soft deletion. |
Tidak ada komentar:
Posting Komentar