Tolong pilih kategori sesuai, jenis posting (diskusi atau bukan) dan sertakan tag/topik yang sesuai seperti komputer, java, php, mysql, dll. Promosi atau posting tidak pada tempatnya akan kami hapus!
- Bagi Anda yang ingin mendaftar, baca link berikut:
http://diskusiweb.com/discussion/50491/how-to-registrasi-diskusiweb-com-baca-ini-terlebih-dahulu
- Cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com
- Cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

Perihal log delete record

Siang master,
Saya sudah buat sistem dan berjalan dengan baik. Namun saya ada kendala dalam log delete record DB. Saya pake Mysql & CI. Saya memikirkan perihal log delete, beberapa poin yang saya pikirkan :
  1. Saya ada tabel Absen. Saya buat 1 tabel lagi Absen_log untuk nyimpen record yang di delete. Jadi tiap2 tabel akan ada tabel log. Kelemahannya akan ada banyak tabel. Kalau saya pake 1 tabel khusus log delete, maka datanya bisa banyak dan field-field harus saya bikin banyak mengingat field2 tiap tabel berbeda2.
  2. Metode menyimpan di log lebih baik di sisi php (Sebelum delete akan ada query untuk insert data terlebih dahulu ke tabel log) atau saya buatkan trigger Before Delete di Mysql-nya
Saya minta masukan dan pendapat dari para master2
Tagged:

Comments

  • edited March 5
    lha napa ndak tambah 2 field aja di table nya ?

    1 field "deleted" ... tinyint / binary / boolean, default = 0 / false (tanda record sudah dihapus / tidak)
    1 field "u_delete" ... se-tipe dgn tipe field id user (user id yg menghapus)

    kalo butuh bisa tambah 1 lagi field
    "dt_delete" ... tipe datetime ... buat mencatat kapan datanya dihapus

    kalo di DELETE ...
    proses nya kan isi data ndak bakal berubah, cuma datanya aja yg hilang

    tapi sekarang modelnya diganti, bukan di DELETE
    tapi UPDATE

    UPDATE table
    SET deleted = 1, u_delete = user_id, dt_delete = NOW()
    WHERE id_data=xxx

    data tidak benar-benar dihapus, cuma ditandai kalo data sudah "dihapus"

    kira-kira kaya gitu

    ndak perlu bikin tabel baru
    tapi kalo begini semua query mesti ada perubahan

    ada pengecualian saat SELECT, UPDATE, atau apa pun
    ... WHERE deleted = 0
    jadi yg sudah dihapus ndak perlu di SELECT, UPDATE, atau yg lainnya



    kerjaan kaya gini paling gampang kalo aplikasi elo sudah pake model DBAL
    ada aplication layer buat fungsi-fungsi DB
    semua perintah DB sudah dipisah ke 1 librari sendiri
    jadi yg perlu elo ubah2 ya cuma file itu doang

    tapi kalo belum / bukan pake model kaya begitu ...
    ya beneran capek mesti ubah banyak query
Sign In or Register to comment.