• Yardım
  • Flutter Çift Kullanıcı Update Sorunu

Merhaba arkadaşlar,
Sizler ile beyin fırtınası yapmak istiyorum.
Web servis ile anlık olarak verileri çekerek bir sayfada listeliyorum. İki kullanıcı aynı kayda tıklayarak detayına gidiyor. En son kaydet butonuna tıklayan kullanıcının verileri geçerli oluyor. Bunun önüne geçmek için neler yapılabilir?

BAU-BayramAlinvar veri tabanına yeni bir kolon ekleyin. bu kolonun durumu biri düzenlemeye çalıştığında 0′dan 1′e değişsin. çıktığı zamanda değeri tekrar 0 olsun.
Biri düzenlerken başka biri düzenlemeye çalışırsa orada sayfa read-only olsun. Sadece görüntüleme yapabilsin.
İki senaryo geldi aklıma
1 - adam sayfayı açtı, düzenleme yapmadan geri tuşu ile sayfadan çıktı. Bu durumu dispose ile yakalayıp durumu 0 yapabilirsiniz.
2 - adam sayfayı açtı, düzenleme yapmadan uygulamayı direkt kapattı. Bu durumda durumu sıfır yapanayız. Çözüm önerisi olarak max değişiklik süresi belirlersiniz. Örneğin 5 daika. 5 dakika geçmesine rağmen durum hala 1 ise başka biri bunu değiştirebilsin.
Biraz karmaşık oldu sanırsam 😃
İyi çalışmalar

Flutter cevabınız tam benim düşündüğüm gibi gayet güzel ama o süre olayı hoşuma gitmiyor.
Dün gece aklıma bir şey geldi. Benim tüm tablolarımda güncelleme tarihi alanı mevcut. Kaydı iki kullanıcı çektiğinde ikiside kaydete bastığında web apinin içinde update metodunun içinde update etmeden önce değişiklik tarihine bakacağım. Eğer mobilden gelen classtaki değişiklik tarihinden şuan benim gönderdiğim düşük ise daha önce başka biri güncellemiş ve tarihi artırmıştır diye düşünerek update e izin vermeyeceğim. Flutter page den çık tekrar gir diye uyarı vereceğim. Fikir taze eksileri artıları daha düşünmedim. Nasıl ? 😊

BAU-BayramAlinvar bir listener tanımlayıp kaydı değiştirirken henüz kaydete basmadığında veritabanında biri değişiklik yapıldıysa uyarması sağlanabilir. Dediğin yöntemde tarih herzaman geçmiş zaman olarak gelecek herzaman küçük olacak yani 🙂 readonly de mantıklı. Birçok uygulama bu şeklide çalışır. Döküman başka bir cihazda açık içerik değiştirilemez şeklinde uyarı verir. Karar sana kalmış artık 🙂

HseyinAkkaya yok dediğim yöntemde mobil uygulamada detaya gittiğimde elimdeki güncelleme tarihi ile sunucudaki veritabanındaki güncelleme tarihi aynı olacak. Aynı ise bu durumda güncellemeye izin vereceğim. Aynı değil ise diğer kullanıcı benden önce güncellemiş ise güncelleme tarihini datetimenow yapacağından elimdeki tarih alanı ile kıyaslayacağım bendeki eski tarih saat olacak. Bu sebeple sen dur diyeceğim. Çık listeden geri tekrar gel diyeceğim. Uzun oldu biraz ama anlatabildim mi? 😊

Write a Reply...