DB Deki Değere Göre Sayaç
-
Selam müridcanlar,
asp.net MVC 5 ile bir proje yapıyorum ve şöyle bir ihtiyacım var. Mssql servera kayıtlar girilecek. atıyorum gün boyunca 100 kayıt girildi. Ben bu kayıtların 20 tanesinin sayaç alanına 50 yazıdığımda 50dk 100 yazdığımda 100dk o kaydın IsAktif alanını 1 değerinde tutacak. Ayrıca herhangi bir kaydın IsAktif alanı 1 olduğunda bu geri sayımı kullanıcıyada göstermem gerekiyor. Ben bunu triggerla vs ile çözerim gibi geliyor ama yok arkadaş bu işi db de değil mvc ile şöyle yapabilirsin diyebilecek bir mürid aranıyor :)
-
İstediğin şeyin hazır çözümü %99 yoktur. (varsa ben bilmiyorum). Çözümü için yol göstereyim. Bahsettiğin sayaç alanına 50 yazdığında servera bir istekte bulunacaksın. isAktif i 1 yapacaksın ve işin bitiş zamanını hesaplayıp veritabanına kaydedeceksin. Örnekle açıklamak gerekirse;
Data - isAktif - isAktifBitis
Hedehödö - 1 - 20.07.2015 21:00:00
Bundan sonra ise sayfa render edilirken javascripte diyeceksin ki şuan başlayan ve isAktifBitis te bitmesi gereken sayacı hazırla. (Hazır kod betikleri olduğu için örneklemiyorum. Zilyon tane var). Sunucuya datayı gönderdiğinde yada sözkonusu sayfa render edilirken kontrol ediceksin eğer zamanı dolmuşsa isAktif i 0 yap isAktifBitis i null yap değilse javascript timer ı çalıştır. Bu kadar basit.
Not: isAktif e gerek yok. isAktifBitis ile işini görebilirsin ama mevcut kodunu modifiye etmemen için isAktifli kullanımına örnek verdim. Biraz karışık anlattım ama cidden çok basit birşey istediğin.
Edit: Triggerdan ziyade cronjob ile çözebilirsin (mssql bilmiyorum ama mysqlin kendi cronjob mekanizması da var, işletim sistemininkinide kullanabilirsin). Ama cronjob gereksiz derecede karmaşıklaştıracaktır işi. Veritabanı güncellenince clientın bir şekilde haberdar olması lazım. Haberdar olması için saatten haberdar olması lazım vs vs diye karmaşıklaşır. Hiç gerek yok. 1 field ile problem çözülebilir. İhtiyacın olan şey bu iş ne zaman bitecek. Bunu veritabanına kaydettiğinde iş bittimi bitmedimi ne kadar süre kaldı ayrımını server ve client tarafında kolaylıkla yapabilirsin.
S2kucuk tarafından 20/Tem/15 22:53 tarihinde düzenlenmiştir
