विदेशी कुंजी दो तालिकाओं के बीच माता-पिता-बाल संबंध को परिभाषित करती है। पैरेंट टेबल में प्राथमिक कुंजी n चाइल्ड टेबल पंक्तियों में विदेशी कुंजी है।
अब यदि मूल तालिका में वह प्राथमिक कुंजी अद्यतन हो जाती है, तो अद्यतन नियम शुरू हो जाता है। या तो सभी बच्चे पंक्तियों को भी अद्यतन किया जाता है, NULL या जो कुछ भी सेट किया जाता है। हालांकि सबसे अच्छा अभ्यास एक प्राथमिक कुंजी है जो कभी नहीं बदलती (एक निश्चित आईडी या कुछ और), इसलिए यह कम महत्वपूर्ण नियम है।
अधिक महत्वपूर्ण है DELETE नियम - क्या होगा यदि मूल पंक्ति हटा दी जाती है (उदा। आदेश हटा दिया गया है)? आप या तो CASCADE DELETE के साथ सभी चाइल्ड पंक्तियों (सभी ऑर्डर लाइन आइटम) को हटा सकते हैं, या आप उनकी विदेशी कुंजी को NULL पर सेट कर सकते हैं (उनके पास अब कोई माता-पिता नहीं है) - यह पूरी तरह से आपके ठोस परिदृश्य पर निर्भर है।
ऑर्डर/ऑर्डर लाइन परिदृश्य में, जब पूरा ऑर्डर डिलीट हो जाता है तो ऑर्डर लाइन को हटाना पूरी तरह से उपयोगी हो सकता है, लेकिन आप शायद किसी उत्पाद को हटाना नहीं चाहते हैं, सिर्फ इसलिए कि एक ऑर्डर जो संदर्भित करता है उसे हटा दिया गया है - ऐसा नहीं है एक ही सही उत्तर - यह आपके परिदृश्य और आपके ऐप पर निर्भर करता है।
मार्क