व्यक्ति तालिका में प्राथमिक कुंजी संभवतः एक पहचान है। यह एक स्वतः-वृद्धिशील पूर्णांक फ़ील्ड है।
आपको विदेशी कुंजी को प्रकार int की पता तालिका में बनाने की आवश्यकता है, पहचान नहीं। इसमें पूर्णांक होंगे जो व्यक्ति रिकॉर्ड से मेल खाते हैं, लेकिन आप नहीं चाहते कि विदेशी कुंजी स्वत:वृद्धि के लिए हो। चाइल्ड टेबल (पता) में प्रत्येक रिकॉर्ड के लिए आप विदेशी कुंजी के लिए एक विशिष्ट मान निर्धारित करेंगे जो यह दर्शाता है कि यह किस मूल रिकॉर्ड (व्यक्ति) से संबंधित है।
उदाहरण:
INSERT person (firstname, lastname) VALUES ('John', 'Smith')
यह नया व्यक्ति रिकॉर्ड और फ़ील्ड personid
. सम्मिलित करेगा स्वचालित रूप से भर जाएगा क्योंकि यह एक पहचान क्षेत्र है।
अब जॉन स्मिथ का पता डालने के लिए आपको उनका personid
जानना होगा . उदाहरण के लिए:
-- Say, for example, personid of John Smith is 55
INSERT address (personid, street, city) VALUES (55, 'High Street', 'London')
तो person
. में तालिका में व्यक्ति स्वचालित रूप से उत्पन्न होता है लेकिन address
. में तालिका में आप वह मान निर्दिष्ट करते हैं जो किसी मौजूदा व्यक्ति से मेल खाता है। यह एक विदेशी कुंजी का पूरा बिंदु है।
आपकी स्कीमा के बारे में अधिक जानकारी के बिना समस्या का अनुमान लगाना कठिन है।