Ben projelerde dosya ve bağımlılıkları izleyen bir veritabanı üzerinde çalışıyorum. Kısaca, iki ana tablolar; PROJELER tabloda isimleri ve diğer özellikleri proje, DOSYALARI tablo dosyaları listeler. Ben veritabanından bir proje kaydı silmek eğer öyleyse, ÇORUH ayarlanmış bir yabancı anahtar olarak bir projeye her dosya giriş noktaları, tüm dosya kayıtları yanı kaybolur. Çok uzak çok iyi.
Şimdi ek DEPENDENCIES tablo var. Bağımlılık tablosundaki her kayıt ilk dosya saniyede bağlı olduğunu belirterek, iki dosya olduğunu. Yine bu yabancı anahtarlar ilk ÇORUH (Bir dosya girişini silmek eğer öyleyse, bu kayıt silinir) olarak ayarlandığında, fakat ikinci (SINIRLAMADIĞI ayarlandığında bu yüzden diğer dosyaları bağlıysa bir dosya girişini silmek için izin değilim üstünde). Yine, her şey iyi görünüyor.
Ne yazık ki artık deyimi silmek tek SQL ile bir proje silebilirsiniz görünüyor! Silme çalışır-kaskad silme dosyaları, ancak bunlardan herhangi DEPENDENCIES tabloda görünen durumunda, yabancı anahtar silme (diğer sütun BASAMAKLA çünkü bağımlılıkları tabloda bu kayıt silinecektir olsa bile) engeller kısıtlamak. Sahip olduğum tek geçici çözüm bağımlılık rekor hiçbiri ihlal böylece dosyaları silmek ve projeyi çıkarmaya çalışmadan önce bir defada dosya kayıtları tek kaldırmak için tam bir düzen hesaplamaktır.
Tek bir SQL doğru diğer siler basamakla projeler tablodan silmek yani benim veritabanı şemasını kurmak için herhangi bir yolu var mı? Ben Firebird 2.1 kullanıyorum, ama bu herhangi bir fark yapar bilmiyorum - Orada bu işi yapmak için bir yol olması gerektiğini gibi görünüyor?