मान लें कि मेरे डेटाबेस में कई संबंध हैं, उदाहरण के लिए स्टोर, कर्मचारी और बिक्री, और मैं एक साधारण द्विआधारी संबंध के साथ जोड़े जोड़ना चाहता हूं। व्यक्तिगत रूप से मैं Employee_Store और Employee_Sale नाम की टेबल बनाऊंगा जिसमें एक प्राकृतिक कुंजी विदेशी कुंजियों से बनी होगी।
अब, मेरा सहयोगी कई रिश्तों के लिए एक तालिका बनाने पर जोर देता है। उपरोक्त उदाहरण के लिए एक तालिका हो सकती है जिसका नाम EmployeeLinks है:
EmployeeLinks(
IdLink int PK,
IdEmployee int FK null,
IdStore int FK null,
IdSale int FK null,
LinkType int not null
)
कृपया मुझे अच्छे कारणों से मदद करें कि यह एक अच्छा विचार क्यों नहीं है। मेरे अपने तर्क हैं लेकिन मैं उन्हें निजी रखना चाहूंगा और आपकी निष्पक्ष राय सुनूंगा।
संपादित करें:
प्रारंभ में ऊपर दी गई तालिका में कोई प्राथमिक कुंजी (!) नहीं होगी। क्योंकि विदेशी कुंजियाँ शून्य करने की अनुमति देती हैं इसलिए सरोगेट कुंजी एकमात्र विकल्प है।