कसरी Microsoft SQL Server मा विदेशी कुञ्जी सिर्जना गर्ने

डाटाबेसमा सबैभन्दा महत्त्वपूर्ण अवधारणाहरू मध्ये डाटाबेस टेबलहरू बीच सम्बन्ध सिर्जना गर्दै। यी सम्बन्धहरूले बहुविध तालिकाहरूमा भण्डार गरिएको डाटा लिङ्क गर्न र यसलाई प्रभावकारी ढंगमा पुनः प्राप्त गर्न एक तन्त्रणा प्रदान गर्दछ। दुई तालिकाहरू बीच लिङ्क सिर्जना गर्न, तपाईंले एउटा तालिकामा विदेशी कुञ्जी निर्दिष्ट गर्नुपर्नेछ जुन अर्को तालिकामा स्तम्भ सन्दर्भ गर्दछ।

डाटाबेस तालिकाहरू र सम्बन्धहरू

तपाइँ पहिले नै थाहा हुन सक्दछ कि डाटाबेसहरू केवल टेबलहरूको एक श्रृंखला हो , जुन तपाईले पहिले नै स्प्रेडसिट कार्यक्रममा प्रयोग गर्न सक्नुहुनेछ जस्तै, माइक्रोसफ्ट एक्सेल। वास्तवमा, तपाईले एउटा डेटाबेसमा एक्सेल स्प्रिेडसिट पनि कन्वर्ट गर्न सक्नुहुनेछ। जहाँ डाटाबेसहरू स्प्रिेडसिटबाट अलग हुन्छ, तथापि, जब तालिकाहरू बीच शक्तिशाली सम्बन्ध निर्माण गर्न आउछ।

उदाहरणका लागि, मानव संसाधन जानकारी ट्रयाक गर्न कम्पनी द्वारा प्रयोग गरिएको डेटाबेस। त्यो डाटाबेसमा कर्मचारी नामक तालिका हो जुन कम्पनीको कर्मचारीको प्रत्येक सदस्यको लागि निम्नलिखित जानकारी छ:

यस उदाहरणमा, कर्मचारी ID एक विशिष्ट उत्पन्न गरिएको पूर्णांक हो जुन प्रत्येक कर्मचारीलाई नियुक्त गरिन्छ जब तिनीहरू डेटाबेसमा थपिन्छन्। स्थिति आईडी नौकरी कोड कम्पनीमा कर्मचारीको स्थिति सन्दर्भ गर्न प्रयोग गरिएको छ। यस योजनामा, एक कर्मचारीले मात्र एक स्थान हुन सक्छ, तर एकाधिक (वा कुनै) कर्मचारीहरूले प्रत्येक स्थिति भर्न सक्छन्। उदाहरण को लागी, तपाईं "सान्दर्भिक" स्थिति संग सयौं कर्मचारीहरू हुन सक्छ।

प्रत्येक स्थितिको बारेमा निम्न अतिरिक्त जानकारीको साथमा डाटाबेसले स्थितिलाई तालिकामा तालिकामा समावेश गर्दछ:

यस तालिकामा स्थिति ID फिल्ड कर्मचारी कर्मचारीको समान कर्मचारी कर्मचारी - यो एक विशिष्ट उत्पन्न गरिएको पूर्णांक हो जुन स्थिति सिर्जना भएको बेलामा डेटाबेसमा थपिएको छ।

जब हामी डेटाबेसबाट कर्मचारियों को एक सूची खींचने को लागि जान्छ, यो प्रत्येक व्यक्ति को नाम र उनको शीर्षक को अनुरोध गर्न प्राकृतिक हुनेछ। यद्यपि, यो जानकारी धेरै डेटाबेस तालिकाहरूमा भण्डारण गरिएको छ, त्यसैले यो जिन क्वेरी प्रयोग गरेर मात्र प्राप्त गर्न सकिन्छ जुन तालिकाहरू बीच अवस्थित सम्बन्धको आवश्यकता पर्दछ।

जब तपाई तालिकाको संरचनामा हेर्नुहुन्छ, सम्बन्ध परिभाषित गरिएको क्षेत्र सम्भव छ - स्थिति ID फिल्ड। प्रत्येक कर्मचारीले केवल एक स्थान हुन सक्छ र त्यो पद पोष्टेसन तालिकाको सम्बद्ध प्रविष्टिबाट स्थिति आईडी सहित पहिचान गरिएको छ। Positions table को लागि प्राथमिक कुञ्जी हुनुको साथै, यस उदाहरणमा, स्थिति आइडी क्षेत्र कर्मचारी तालिकाबाट पदोन्नति तालिकामा विदेशी कुञ्जी हो। डाटाबेसले यस क्षेत्रलाई धेरै तालिकाबाट जानकारी सहन गर्नका लागि प्रयोग गर्न सक्दछ र यो डेटाबेसमा कुनै पनि परिवर्तन वा थपताहरूले सन्दर्भीय पूर्णता लागू गर्न जारी राख्न सक्छ

एकपटक तपाईले विदेशी कुञ्जीलाई पहिचान गर्नुभएपछि, तपाइँ अगाडि बढ्न सक्नुहुन्छ र निम्न क्वेरी प्रयोग गरेर डाटाबेसबाट वाणी जानकारी निकाल्न सक्नुहुन्छ:

चयन पहिलो नाम, अन्तिम नाम, कर्मचारी प्रवेशकर्ता कर्मचारीबाट कर्मचारीहरूमा पदस्थिति। स्थितिआईडी = पदोन्नति .स्थितिआईडीआईआई

SQL सर्भरमा विदेशी कुञ्जी सिर्जना गर्दै

प्राविधिक रूपमा, तपाईंले माथिको जस्तै प्रश्नहरू प्रदर्शन गर्न सक्षम हुनु स्पष्ट रूपमा परिभाषित गर्न आवश्यक छैन। यद्यपि, यदि तपाईले स्पष्ट रूपमा विदेशी कुञ्जी बाधा प्रयोग गरी सम्बन्धलाई परिभाषित गर्नुभयो भने, डाटाबेसले तपाईंको लागि केहि गृहकार्य कार्य गर्न सक्षम हुनेछ:

यहाँ तपाई SQL सर्वरमा विदेशी कुञ्जी कसरी सिर्जना गर्नुहुन्छ:

ALTER तालिका कर्मचारी कर्मचारी विदेशी कुंजी (PositionID) सन्दर्भ सन्दर्भहरू (PositionID)

तपाइँले खण्ड थप्दा टेबल सिर्जना गर्दा तपाइँ एक विदेशी कुञ्जी पनि सिर्जना गर्न सक्नुहुन्छ:

विदेशी प्रमुख सन्दर्भ स्थितिहरू (PositionID)

विदेशी कुञ्जी स्तम्भको लागि स्तम्भ परिभाषाको अन्त्यमा।