मेरे पास एक तालिका है जहाँ पंक्तियाँ एक-दूसरे से संबंधित हो सकती हैं, और तार्किक रूप से, दोनों पंक्तियों के बीच संबंध दोनों तरीके से (मूल रूप से, दिशाहीन है) जाता है। (और अगर आप सोच रहे हैं, हां, यह वास्तव में एक तालिका होनी चाहिए। यह एक ही तार्किक इकाई / प्रकार की दो चीजें हैं।) मैं इसे दर्शाने के लिए कुछ तरीके सोच सकता हूं:
- रिश्ते और उसके रिवर्स स्टोर करें
- रिश्ते को एक तरह से स्टोर करें, डेटाबेस को दूसरे तरीके से स्टोर करने से रोकें, और FKs के लिए विपरीत ऑर्डर के साथ दो इंडेक्स हों (एक इंडेक्स PK इंडेक्स हो)
- रिश्ते को दो अनुक्रमों के साथ एक तरह से स्टोर करें और दूसरे को वैसे भी डालने की अनुमति दें (ध्वनियों की तरह, लेकिन हे, पूर्णता)
- किसी प्रकार की समूहीकरण तालिका बनाएँ और उसमें मूल तालिका पर एक FK रखें। (बहुत से प्रश्न उठाता है। समूह तालिका में केवल एक संख्या होती है; तालिका भी क्यों होती है? FK को पूर्ण बनाएं या एकल पंक्ति से जुड़े समूह हैं?)
इन तरीकों के कुछ प्रमुख पेशेवरों और विपक्ष हैं, और निश्चित रूप से, क्या कोई ऐसा तरीका है जिसके बारे में मैंने नहीं सोचा है?
यहाँ एक SQLFiddle के साथ खेलने के लिए है: http://sqlfiddle.com/# -12/7ee1a /1/0 । (पोस्टग्रेएसक्यूएल होने के बाद से यह वही है जो मैं उपयोग कर रहा हूं, लेकिन मुझे नहीं लगता कि यह प्रश्न पोस्टग्रेक्यूएल के लिए बहुत विशिष्ट है।) यह वर्तमान में एक उदाहरण के रूप में रिश्ते और इसके रिवर्स दोनों को संग्रहीत करता है।