मैं नीचे के रूप में reational डेटाबेस में माता-पिता और बच्चे मैपिंग के लिए सभी पहुंच योग्य बच्चे को सूचीबद्ध करने के,स्मृति में पैरेंट बाल मैपिंग संग्रहीत करना। प्रदर्शन के अनुकूलन के लिए एक माता पिता कुशलतापूर्वक
relationship_id | parent_id | child_id
1 | 100009 | 600009
2 | 100009 | 600010
3 | 600010 | 100008
, मैं स्मृति में इन सभी मैपिंग रखना चाहते। यहां, एक बच्चे के एक से अधिक माता-पिता होंगे और माता-पिता के 2 से अधिक बच्चे होंगे। मुझे लगता है, मुझे "ग्राफ" डेटा संरचना का उपयोग करना चाहिए।
स्मृति में पॉपुलटिंग एक बार की गतिविधि है। मेरी चिंता यह है कि, जब मैं सभी बच्चे (न केवल तत्काल बच्चे) को सूचीबद्ध करने के लिए कहता हूं, तो उन्हें जितनी जल्दी हो सके उन्हें वापस कर देना चाहिए। जोड़ और हटाना शायद ही कभी होता है। मुझे किस डेटा संरचना और एल्गोरिदम का उपयोग करना चाहिए?
MultiHashMap का प्रयास किया, O(1)
खोज समय प्राप्त करने के लिए, लेकिन इसमें अधिक रिडंडेंसी है।
यह मैंने वास्तव में क्या किया। लेकिन, मुझे माता-पिता के लिए सभी पहुंचने योग्य बच्चों को प्राप्त करने की आवश्यकता है। इस डिजाइन में, मुझे पहुंच क्षमता खोजने के लिए हर बच्चे-बच्चों के नोड से यात्रा करने की ज़रूरत है। क्या कोई रास्ता है कि मैं कम ट्रैवर्सल में सभी पहुंचने योग्य नोड्स पा सकता हूं। – krishna
@ कृष्णा मुझे यकीन नहीं है कि यह उससे बेहतर हो सकता है या नहीं। आप प्रत्येक नोड पर एक झंडा लगा सकते हैं यह इंगित करने के लिए कि आपने इसका दौरा किया है ताकि आप किसी भी नोड्स को दोहराएं। इस ध्वज को एकाधिक कॉल (वंशजों को प्राप्त करने के लिए) को पूर्णांक के रूप में कार्यान्वित किया जा सकता है, 0 से शुरू होता है और प्रत्येक कॉल पर वृद्धि करता है, और उसके बाद केवल उसके नोड्स पर नोड्स का दौरा किया जाता है! = वह मान और फिर प्रत्येक विज़िट नोड को इस मान पर सेट करें। – Dukeling