with open('data.base','r') as database: lines = database.readlines()
for line in lines: if input_data in line: data_exists = True break else: data_exists = False
if data_exists == False: with open('data.base','a') as database: database.write(input_data)
print(input_data + " Veritabanına başarıyla kaydedildi.") else: print(input_data + " Veritabanına zaten kayıtlı.")
return 'OK'
Kendim bir text based veritabanı yazmayı deniyorum. (yapacağım işte depolanacak ana 3 veri var sadece)
Kullanıcıya bir post form verdim. Ve onu doldurduğunda sumbit dediğinde arkada bu veritabanı işlemleri gerçekleşiyor.
Text based database olduğundan dolayı herhangi bir çökme olabilir mi veya herhangi bilmediğimiz bir sorun çıkarabilir mi?
not : kullanıcının girdiği veri ile iki farklı veri generate ediliyor ve kullanıcı verisinin yanına boşluk ile yazdırılıyor.
aynı anda birden fazla kullanıcı veri yazdırmak istediğinde dosya başka bir kullanıcının verisini yazarken açık olduğu anda veri yazmayı reddedebilir belki.
Evet öyle bir sorun çıkması muhtemel. Fakat file modelar ile önlenebilir.
Veritabanı çözümlerinde bunun bir adı var mı ?
codforcC
kullanıcısına yanıt
vt çözümlerinde lock veya simultaneous write gibi bir adı var.
O yöntem biraz tehlikeli olabilir gibime geldi.
Kullanıcının girdiği veri eğer veritabanında yok ise eklemek için bir sıraya eklenecek ve veri veritabanına eklenmek için sıradayken kullanıcıya gösterilecek.
Yani olay şöyle çözülebilir gibime geliyor.
1 - veriyi al 2 - veriyi sıraya koy 3 - veriyi sıradayken kullanıcıya göster 4 - veriyi veritabanına kaydedip sıradan sil 5 - sıradan silinen veriyi veritabanından çekip göster
not : Tamamen düşünerek buldum. Belki başka bir yerde bu çözüm vardır fakat belki işinize yarıyabilir diye kendi deneyeceğim çözümü açıkladım.
codforcC
kullanıcısına yanıt
vt yönetim sistemi tasarlamak gibi olur bu. hobi olarak yapılabilir tabi ki ancak mysql, sqlite, mongodb vs gibi güvenilir olmaz.
yeni mesaja git
Yeni mesajları sizin için sürekli kontrol ediyoruz, bir mesaj yazılırsa otomatik yükleyeceğiz.Bir Daha Gösterme