यह एक खराब डिजाइन है। बस 2-कॉलम प्राथमिक कुंजी, और 2-कॉलम विदेशी कुंजी बनाएं। यह एक मौलिक विरोधी पैटर्न है जिसे "कुंजी में एन्कोडिंग जानकारी" कहा जाता है जिसे (जिससे) "स्मार्ट", "बुद्धिमान" या "संबद्ध" कुंजी कहा जाता है। एक अच्छी कुंजी "गूंगा" कुंजी है।
जैसे: :
इसके अलावा, कोई ज़रूरत नहीं है ऐसा करने के लिए।
कई डीबीएमएस "गणना कॉलम" की अनुमति देते हैं जिनके मूल्यों की स्वचालित रूप से अन्य कॉलम से गणना की जाती है। एक प्राथमिक कुंजी या विदेशी कुंजी बनाने के लिए आपको आमतौर पर इसे "निरंतर" की आवश्यकता होगी, यानी एक सामान्य कॉलम की तरह स्मृति लेना होगा, जब एक दृश्य की तरह आवश्यक होने पर गणना की जा रही हो। MySQL में ये नहीं हैं, लेकिन 5.7.5 कुछ कार्यक्षमता है जहां उन्हें "जेनरेट किए गए कॉलम" कहा जाता है, जिसे "संग्रहीत" किया जा सकता है। लेकिन पीके या एफके के लिए ऐसा न करें!
वास्तविक डिज़ाइन समस्या database/SQL subtypes/hierarchies/inheritance/polymorphism को हैंडल कर रही है। ।