मैं अब कुछ वर्षों से MySQL डीबी के साथ कोडिंग कर रहा हूं और मैंने कभी भी विदेशी कुंजी का उपयोग नहीं किया है। अब, मैं समझता हूं कि एक विदेशी कुंजी एक टेबल पर एक आईडी की तरह है जो किसी अन्य तालिका की प्राथमिक कुंजी से मेल खाती है। मेरे पास मेरी साइट पर एक उपयोगकर्ता तालिका है और शायद लगभग 10 अन्य टेबल हैं जो सभी मेरी उपयोगकर्ता तालिका की प्राथमिक कुंजी से मेल खाते हैं - हालांकि वे विदेशी कुंजी के रूप में सेट नहीं हैं।MySQL में एक विदेशी कुंजी का उपयोग करने के लिए या नहीं?
इन 10 अन्य तालिकाओं के पास विदेशी कुंजी होने के कारण मुझे क्या याद आ रही है? मेरा मतलब है, जहां तक मैं कह सकता हूं कि वे मूल रूप से एक विदेशी कुंजी हैं, सिवाय इसके कि उनके पास डीबी में सहेजा गया/असाइन किया गया मान नहीं है।
क्या यहां कोई अन्य लाभ है कि मुझे अभी पता नहीं है?
मुझे एहसास भी है कि प्राथमिक कुंजी शून्य नहीं हो सकती है, लेकिन एक विदेशी कुंजी हो सकती है। यह मेरे मामले में कभी भी कोई समस्या नहीं होगी क्योंकि मेरी उपयोगकर्ता तालिका बनाई गई है, और जब मेरी उपयोगकर्ता तालिका में कोई नया उपयोगकर्ता जोड़ा जाता है तो मैं 10 अन्य तालिकाओं में अपनी उपयुक्त प्रविष्टि जोड़ता हूं।
मैं यहां जवाब में "आप कोड में स्वयं कर सकते हैं" देख रहा हूं, और यह गंभीरता से गुमराह है। मैं यह नहीं समझ सकता कि मैंने कितने डेटाबेस देखे हैं जो महीनों और वर्षों के दौरान अमान्य डेटा की गड़बड़ी बन गए हैं। अपवाद के बिना, उनमें से प्रत्येक पूरी तरह से साफ हो गया होता था, स्कीमा में उचित रूप से लागू किया गया था। विदेशी कुंजी वैकल्पिक नहीं हैं - वे अच्छे डेटाबेस डिज़ाइन का एक प्रमुख घटक हैं। –