Çok kullanıcılı sistemde id buğ'ı
Merhabalar suanda anlık 20 30 kişinin işlem yaptıgı bir sistemim var. Sistemde işlem yaptıktan sonra id'yi last id ile çekip veritabanına yazdırmam gerekiyor
şöyle düşünebilirsiniz. bir blog siteniz var ve başlık içerik ve etiketleri vt' ye kayıt ettiriyorsunuz.
başlık ve içerigi vt ye kayıt ettıkten sonra lastid ile etiketleri başka tabloya ekletiyorum.
fakat last id aldığı için son iki kişi aynıo anda işlem yapınca id'ler karışıyor
bunun önüne nası lgecebilirim scope id diye bir şey duydum fakat
php de nasıl kullanılıyor bilemedim
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (8)
kaan merhaba, bir blog yazısını kayıt ettiğin vakit last id zaten senin elinde olur.
sonra etiketleri o last id ye göre eklersin.
concurrency durumu oluşuyorsa senin yazdığın kodda bir sorun var demektir.
normal bir durumda oluşmaması lazım.
bir veriyi kayıt ettiğin vakit o işlem aynı anda yapılsa dahi last id ler farklı olması lazım.
tekrar last id yi bulmak için sql ile son veriye bakmadan alman lazım.
veriyi insert ettiğin vakit id sini alıp etiketleri kayıt etmelisin.
kodun bir kısmını paylaşırsan yardımcı olacak çıkacaktır.
Sizce bu mantık lı mı ? (Gercekten soruyorum DALGA geçmek için değil). Başka bir yolu var mı ?
işlemi yapıyorsun misal blog ekletiyorsun ve son blog id ile etiketleri ve eklıyorsun
bunun yerine id yanına başka alan aç ve misal $_SERVER['REQUEST_TIME_FLOAT'] kullan ve id yerine o yeni açtığın alanın değerini etiketlere vs yazdır
işlemleri id ye göre değil bu alana göre yap
SADECE iki tane iç içe veri ekleme düşünün ve ilk query'nin last id'sini içindeki query ye ekletiyorum sutun olarak
sorun su blog sitesi olsa tek içerik giren ben olsam sorun yok ama aynı anda 2 işlem yaptıgında çakışıyor sistem last id aldıgı içn
a kullanıcı başladı 1 sanıye sonra b kullanıcı başladı query 'ye
sorun a kullanıcısının last idsi yerine b kulllanıcınını işlemi arada kaldıgı için onun idsini alıyor last id son id alıyor sadece
Hepinize cevaplar için teşekkür ederim. Öncelikle aynı tabloya yapmak istemiyorum çünkü haftalık olarak kullanılan tagları kullanıcılara rapor halinde satıyorum
en cok hangi tağlar kullanılmış. O yüzden mecburen ayrı tablo kullanmak zorundayım. harici olarak da AI kullanıyorum zaten onu kullanmadan da yapabiliğim yollar var fakat aradıgım
cevap bunlardan bırıs degıl