यदि आपको वास्तव A_or_B_ID
में TableZ की आवश्यकता है, तो आपके पास दो समान विकल्प हैं:
1) नल जोड़े A_ID
और B_ID
तालिका z करने के लिए कॉलम, बनाने के A_or_B_ID
इन दो स्तंभों पर IsNull का उपयोग कर एक अभिकलन स्तंभ है, और एक जांच बाधा जोड़ने ऐसी है कि केवल एक काA_ID
या B_ID
अशक्त नहीं है
2) टेबल जेड में एक टेबलनाम कॉलम जोड़ें, जिसमें ए या बी शामिल करने के लिए विवश हैं। अब बनाएं A_ID
औरB_ID
गणना किए गए कॉलम के रूप में, जो केवल गैर-अशक्त होते हैं जब उनकी उपयुक्त तालिका का नाम (CASE अभिव्यक्ति का उपयोग करके) होता है। उन्हें भी कायम रखें
दोनों ही मामलों में, आपके पास अब A_ID
और B_ID
कॉलम हैं जो बेस टेबल के लिए उपयुक्त विदेशी कुंजी हो सकते हैं। अंतर वह है जिसमें कॉलम की गणना की जाती है। इसके अलावा, यदि आपको 2 ID कॉलम के डोमेन ओवरलैप नहीं होते हैं, तो ऊपर दिए गए विकल्प 2 में TableName की आवश्यकता नहीं है - जब तक कि आपकी स्थिति अभिव्यक्ति यह निर्धारित कर सकती है कि कौन सा डोमेन किस क्षेत्र में A_or_B_ID
आता है
(मेरे प्रारूपण को ठीक करने के लिए टिप्पणी के लिए धन्यवाद)