कड़ाई से बोलते हुए, इस तरह के मूल्यों को कैस्केड करने का एकमात्र तरीका अद्यतन कैस्केड का उपयोग करना है। ऐसा करने के लिए वह , कॉलम "is_deleted" को एक अद्वितीय बाधा का हिस्सा होना चाहिए।
वह अकेला बहुत कठिन नहीं है। यदि company.id आपकी प्राथमिक कुंजी है, तो कॉलम {id, is_deleted} का युग्म भी अद्वितीय होगा। कॉलम की उस जोड़ी पर एक अद्वितीय बाधा आपको एक विदेशी कुंजी संदर्भ के माध्यम से अपडेट को कैस्केड करने की अनुमति देगी।
लेकिन वह आपके . में काम नहीं करेगा मामला, क्योंकि आपको संदर्भ मानों को भिन्न होने की अनुमति देने की आवश्यकता है संदर्भित मूल्यों से।
तो आपके मामले में, मुझे लगता है कि आपके पास तीन विकल्प हैं।
- ट्रिगर
- संग्रहीत प्रक्रियाएं
- आवेदन कोड
उन सभी मामलों में, आपको अनुमतियों (शायद हटाने की अनुमति को रद्द करना) और उन मामलों पर ध्यान देना होगा जो आपके कोड से बच सकते हैं। उदाहरण के लिए, dbms कमांड-लाइन इंटरफ़ेस और GUI इंटरफ़ेस का उपयोग एप्लिकेशन कोड में बाधाओं को दूर करने के लिए और अनुमतियों के आधार पर, संग्रहीत प्रक्रियाओं में किया जा सकता है।