क्या कोई डेटाबेस इंजन है जो मौजूदा विदेशी कुंजियों के आधार पर ज्वाइन की स्थिति को समाप्त कर देगा?


11

यह मेरे लिए अजीब लगता है, जब मैंने एक विदेशी कुंजी परिभाषित की है, तो इंजन इस जानकारी का उपयोग अपने आप सही जोइन अभिव्यक्तियों का पता लगाने के लिए नहीं कर सकता है, बल्कि इसके लिए मुझे उसी क्लॉज को फिर से टाइप करना होगा। क्या कोई डेटाबेस, शायद किसी तरह का शोध प्रोजेक्ट है, जो मौजूदा विदेशी कुंजियों का निरीक्षण करेगा?

जवाबों:


4

मुझे ऐसी किसी भी चीज़ के बारे में पता नहीं है जो विदेशी कुंजियों का उपयोग करती है (और यदि आप एक ही तालिका में एक से अधिक विदेशी कुंजी रखते हैं तो यह गड़बड़ हो सकती है)

लेकिन यदि आप किसी विशिष्ट प्रकार के जुड़ाव को निर्दिष्ट नहीं करते हैं और न ही आप उपयोग करते हैं, तो Oracle स्तंभों के नाम से जुड़ जाएगाNATURAL JOIN


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

@ बिटऑफ आपके पास दो तालिकाओं के बीच एक से अधिक संबंध हो सकते हैं, और इसलिए एक समग्र कुंजी नहीं है, लेकिन वास्तव में बच्चे की मेज के लिए एक से अधिक विदेशी कुंजी है। जैसे, पिछली नौकरी में, हमारे पास संगठनों का एक डेटाबेस था, और उस तालिका में मेरे लोगों की तालिका के दो लिंक हैं - विभाग के प्रमुख, और प्राथमिक संपर्क (आमतौर पर, सचिव)। विपरीत दिशा में एक विदेशी कुंजी थी, क्योंकि स्टाफ के सदस्यों को एक विभाग को सौंपा जाता है, जब तक कि हमें कई-कई रिश्तों का समर्थन करने के लिए इसे तोड़ना नहीं पड़ता।
Joe ’

मुझे पता है कि कोई भी सामान्य आरडीबीएमएस ऐसा नहीं करता है - जैसा कि प्रश्न में कहा गया है, मैंने यह सवाल बाहर रखा है कि क्या किसी ने इस क्षेत्र में कुछ भी नया सुना है।
TML

1
-1 यह ओरेकल व्यवहार के बारे में सही नहीं है, और न ही आपका जवाब था कि आप किससे लिंक करते हैं। जैसा कि गैरी (आपके उत्तर की तीसरी टिप्पणी) द्वारा इंगित किया गया है, " natural joinकभी भी डिफ़ॉल्ट नहीं रहा है"। संयोग से, टॉम Kyte निश्चित रूप से सही है जब वह natural join एक बग होने की प्रतीक्षा कर रहा है
जैक कहते हैं कि topanswers.xyz की कोशिश करें

4

यह होगा वास्तव में शांत हो अगर मैं इस लिख सकता है

from calendar join table1

और dbms को पता होगा कि इसे इसका मूल्यांकन करने की आवश्यकता है।

from calendar
left join table1 on (work_date between (cal_date - 13) and cal_date)

वास्तव में अच्छा है। लेकिन हर जुड़ाव एक समान-जुड़ाव नहीं है ।

FWIW, NATURAL JOINSQL मानक में है। लेकिन मुझे पूरा यकीन है कि मैंने पिछले 25 सालों में इसका इस्तेमाल नहीं किया है।

यदि आप अपने आप को एक ही शब्द के साथ और अधिक लिखते हुए पाते हैं, तो शायद आपको अधिक विचारों की आवश्यकता है।


3

यदि आपकी चिंता है, तो ऑटो-यूटीलिट्स को अपनी पसंद के संपादक के लिए ऑटो-उपयुक्त उपयुक्त स्टेटमेंट में शामिल करें। SSG और Visual Studio में SQL सर्वर से निपटने के लिए RedGate's SQL प्रॉम्प्ट। मुझे विश्वास है कि क्वेस्ट का टीओडी ओरेकल और कुछ अन्य लोकप्रिय आरडीएमएस को संभाल लेगा।


कोई वास्तविक "चिंता" नहीं है, बस सोच रहा है कि यह कुछ है जिसे कोई भी संबोधित कर रहा है।
टीएमएल

@TML मुझे संदेह है कि कोई भी इस बारे में चिंतित है क्योंकि यह वास्तव में मेरी समझ के लिए एप्लिकेशन लॉजिक के क्षेत्र में है (जहां एप्लिकेशन लॉजिक ऐसी चीजें हैं जो डेटाबेस सर्वर को चलाने से संबंधित नहीं हैं, जो चीजें हमें भुगतान करने के लिए मिलती हैं)
jcolebrand
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.