Rumah > Soal Jawab > teks badan
A dan B mengakses set data pada halaman yang sama pada masa yang sama A telah mengubah suai salah satu halaman B belum dimuat semula, jadi maklumat yang dilihat oleh B adalah sebelum A mengubahnya perlu mengubah suai data ini. Bagaimana saya boleh mengingatkan B bahawa data ini telah diubah suai
Saya melihat cara untuk mengetahui data berdasarkan masa pengubahsuaian terakhir sebelum mengubah suai data (pilih * daripada xxx di mana masa kemas kini = xxx dan id= xxx Jika ia tidak ditemui, ia bermakna ia telah diubah suai ditemui, bermakna ia telah diubah suai.Saya ingin bertanya adakah cara yang lebih baik?
typecho2017-07-07 10:37:07
Saya masih ingat bahawa penguncian optimistik dalam hibernate dilaksanakan menggunakan medan nombor versi Selepas setiap kemas kini berjaya, nilai medan nombor versi ditambah sebanyak 1.
Sebelum mengemas kini, semak dahulu sama ada nombor versi dalam pangkalan data dan versi. nombor yang disimpan dalam halaman adalah sama , jika nombor versi menjadi lebih besar, pengguna digesa bahawa pengguna lain telah mengubah suai data semasa mengedit.
Sudah tentu, anda juga boleh menggunakan penguncian pesimis Apabila memasuki halaman, gunakan pilih... untuk kemas kini untuk mengunci rekod Pada masa ini, pengguna lain tidak boleh mengedit rekod terkunci pada masa yang sama.
伊谢尔伦2017-07-07 10:37:07
Saya akan melakukan ini - tambah medan, edit_num, +1 untuk setiap perubahan dan bandingkannya apabila B perlu ditukar.
给我你的怀抱2017-07-07 10:37:07
Mekanisme penguncian yang optimistik dilaksanakan dengan menambahkan medan versi pada data
大家讲道理2017-07-07 10:37:07
Tambah medan pada jadual dataupdate_at
类型为TIMESATMP
,默认值为CURRENT_TIMESTAMP
, tidak perlu menukar yang lain
Setiap kali data dikemas kini, nilai akan dikemas kini secara automatik
女神的闺蜜爱上我2017-07-07 10:37:07
Tambah medan versi pada data ini Nombor versi bermula dari 0 secara lalai Ia akan meningkat secara automatik jika ia tidak diubah suai.