आप जिस पैटर्न को लागू करने का प्रयास कर रहे हैं वह कई-से-अनेक संबंधों का एक विशेष मामला है। SQLAlchemy इसे एक एडजेंसी लिस्ट रिलेशनशिप कहता है, और मैं वहां कोड के माध्यम से पालन करने की कोशिश करने की सलाह देता हूं:
http://docs.sqlalchemy.org/en /rel_0_9/orm/relationships.html#adjacency-list-relationships
कुंजी वहां 'रिमोट_साइड' क्वार्ग है।
यहाँ क्यों है:आपको जो त्रुटि मिल रही है, वह यह है कि आपकी संबद्धता तालिका ('दोस्तों') में दो विदेशी कुंजियाँ हैं जो तालिका 'उपयोगकर्ताओं' की ओर इशारा करती हैं:एक स्तंभ 'user_id' पर, और एक स्तंभ 'friend_id' पर। SQLAlchemy विदेशी कुंजियों के आधार पर संबंधों का स्वतः पता लगाने का प्रयास करता है, लेकिन यह विफल हो जाता है क्योंकि यह यह नहीं बता सकता कि संबंध किस दिशा में जाता है। तो अगर आपके पास टेबल 'दोस्तों' में एंट्री है तो ऐसे ही
user_id : 1
friend_id : 2
SQLAlchemy यह नहीं बता सकता कि user_1 के पास user_2 मित्र के रूप में है, या इसके विपरीत।
अगर यह भ्रमित करने वाला लगता है, तो यह है। सामाजिक नेटवर्क के अर्थ में मित्रता विशिष्ट हो सकती है , जिस स्थिति में उपयोगकर्ता_1 के मित्र उपयोगकर्ता_2 होने का अर्थ यह नहीं है कि उपयोगकर्ता_2 के पास मित्र के रूप में उपयोगकर्ता_1 है; या यह विशेषण हो सकता है , जिस स्थिति में दोनों समकक्ष हैं। मैं यहां अपनी उम्र दिखा रहा हूं, लेकिन पहले का प्रतिनिधित्व लाइवजर्नल द्वारा किया जाता है, जबकि बाद वाले का प्रतिनिधित्व फेसबुक द्वारा किया जाता है।
मैं अपने सिर के ऊपर से नहीं जानता कि SQLAlchemy में एक विशेष संबंध को कैसे कार्यान्वित किया जाए। यह एक बदसूरत यूनियन ऑल या MySQL में ऐसा कुछ है।