Kullanıcı bir görüntü düzenleme başladığında son değişiklik damgası saklayın. Onların değişiklikleri gönderdiğinizde, yine son değişiklik damgası karşı kontrol edin. Bu farklı, başka bir kullanıcı zaten görüntüyü değiştirdi daha kullanıcıyı bilgilendirmek.
Siz kullanıcı üzerine yazmak için seçmeden önce görüntünün yeni sürümünü görmek izin isteyebilirsiniz. Ayrıca, insanların değişiklikleri geri çevirelim (a la wikipedia) bir sürüm kontrol sistemi sağlamak isteyebilirsiniz.
EDIT (aşağıda yorumlarına yanıt olarak)
Son değiştirilme zaman damgası (veya belki de ek olarak) depolama aksine, orijinal görüntünün bir karma saklayın. ve üzerine hemen önce olanlar karşılaştırabilirsiniz. Aksi takdirde, yukarıdaki gibi aynı.
Eğer önerilen diğer seçenek de iyi çalışır. senin iş akışında 3. adımda oluşturduğunuz bir bir var eğer [GörüntüDosyaAdı] sonra,. dosya kilitlemek (ya da orada saklanır eğer DB alan değiştirme) biri zaten elbette, yoksa sürecin başında yukarıdaki gibi aynı.
To expand on the DB option in point 2 above, it would be much simpler to have a table like:
image_id | image_data
Eğer (isteğe bağlı db yükü azaltmak yerine php md5 hesaplamak) başladığınızda sorgu md5 dahil
select image_data, md5(image_data) from image_table where image_id=1
Geri yazmak istiyorsanız o zaman, yapılacak
update image_table set image_data=? where image_id=? and md5(image_data)=?
Bu md5 üzerine önce özdeş olmanın güncelleme koşullu yapar ve tek bir basit sorguda kalır.
Sonra affected_rows kontrol edin. Etkilenen satır olsaydı, o zaman karma kontrol edin. Karma farklı ise o zaman muhtemelen sorgu nedeniyle md5 kontrol güncellemek için başarısız oldu. (Not: muhtemelen de herhangi bir mysql hataları kontrol etmek isteyebilirsiniz)