मैं ऐसी सुविधा बनाने की सोच रहा हूं जो पदानुक्रमित फ़िल्टरिंग वाले डेटा के लिए पूछताछ की अनुमति देता है। मेरे पास कुछ विचार हैं कि मैं इसके बारे में कैसे जा रहा हूं लेकिन यह सोच रहा था कि क्या कोई सिफारिशें या सुझाव हैं जो अधिक कुशल हो सकते हैं।पदानुक्रमित डेटा खोजने के लिए सर्वोत्तम विधि
उदाहरण के तौर पर एक उपयोगकर्ता कल्पना करता है कि कोई उपयोगकर्ता नौकरी की तलाश में है। नौकरी के क्षेत्र निम्नानुसार होंगे।
1: Scotland
2: --- West Central
3: ------ Glasgow
4: ------ Etc
5: --- North East
6: ------ Ayrshire
7: ------ Etc
एक उपयोगकर्ता विशिष्ट (अर्थात ग्लासगो) या एक बड़े क्षेत्र (अर्थात स्कॉटलैंड) में खोज सकते हैं।
दो दृष्टिकोण मैं विचार कर रहा हूँ कर रहे हैं:
- प्रत्येक रिकॉर्ड के लिए डेटाबेस में बच्चों का एक नोट रखने के (यानी बिल्ली 1 होता 2, 3, अपने बच्चों के क्षेत्र में 4) और है कि रिकॉर्ड के खिलाफ क्वेरी
SELECT * FROM Jobs WHERE Category IN Areas.childrenField
के साथ। - चयनित क्षेत्र से संबंधित सभी परिणामों को खोजने के लिए एक पुनरावर्ती फ़ंक्शन का उपयोग करें।
समस्याओं मैं दोनों कर रहे हैं से देखें:
- DB में इस डेटा होल्डिंग संरचना करने के लिए सभी परिवर्तनों का ट्रैक रखने के लिए होने का मतलब होगा।
- रिकर्सन धीमा और अक्षम है।
सर्वोत्तम दृष्टिकोण पर कोई विचार, सुझाव या सिफारिशें? मैं एमएसएसक्यूएल 2005 डीबी के साथ सी # एएसपी.नेट का उपयोग कर रहा हूं।
आप क्या कर सकते हैं पुनरावर्ती प्रश्नों, अपनी तालिका संरचना यह समर्थन करता है तो: http: // msdn.microsoft.com/en-us/library/ms186243.aspx – FrustratedWithFormsDesigner
क्या आपने XML में अपनी जानकारी मॉडलिंग करने और इसे XML विशेषता (डेटाबेस तालिका पर) में संग्रहीत करने पर विचार किया है ताकि आप XQuery का उपयोग करके क्वेरी कर सकें? – XpiritO