मैं एक प्रोग्राम बना रहा हूं जो उपयोगकर्ता निर्देशिका बनाता है (विंडोज़ में नहीं, मेरे ऐप में) और इन फ़ोल्डर्स में उपफोल्डर्स हैं और इसी तरह; प्रत्येक फ़ोल्डर में फ़ोल्डर या दस्तावेज़ होना चाहिए। उपयोग करने के लिए सबसे अच्छी डेटा संरचना क्या है? ध्यान दें कि उपयोगकर्ता एक उपफोल्डर का चयन कर सकता है और इसमें और उसके सबफ़ोल्डर में दस्तावेज़ों की खोज कर सकता है। और मैं फ़ोल्डर्स या उपफोल्डर स्तर को सीमित नहीं करना चाहता हूं।निर्देशिका संरचना के लिए उपयोग की जाने वाली डेटा संरचना?
उत्तर
यह मैं क्या कर रहा है: आईडी और ParentID:
डेटाबेस में हर रिकॉर्ड दो क्षेत्रों है। आईडी 4-5 वर्ण हैं (बेस 36, ए-जेड: 0-9 या कुछ समान)। जनक आईडी माता पिता की पूरी संरचना का एक संयोजन कर रहे हैं ...
तो ...
यह संरचना:
ID ParentID Name
0000 NULL ROOT
0001 0000 Folder1
0002 0000 Folder2
0003 00000002 Folder3
0004 0000 Folder4
0005 00000004 Folder5
0006 000000040005 Folder6
मुझे पसंद है:
Root
Folder1
Folder2
Folder3
Folder4
Folder5
Folder6
इस तरह दर्शाया जा सकते हैं यह संरचना क्योंकि अगर मुझे किसी फ़ोल्डर के नीचे सभी फाइलें खोजने की ज़रूरत है तो मैं एक प्रश्न कर सकता हूं जैसे:
SELECT * FROM Folders WHERE ParentID LIKE '0000%' -- to find all folders under Folder1
एक फ़ोल्डर और उसकी सभी बच्चों हटाने के लिए:
DELETE FROM Folders WHERE ID='0004' AND ParentID LIKE '00000004%'
एक फ़ोल्डर और उसकी बच्चों को ले जाने के लिए, आप सभी रिकॉर्ड है कि एक ही माता पिता का उपयोग करें, नए माता-पिता को अपडेट करना होगा।
और मैं फ़ोल्डर या सबफ़ोल्डर स्तरों
यह करने के लिए एक स्पष्ट सीमा यह है कि उप-फ़ोल्डरों की संख्या अपने ParentID मैदान के आकार तक सीमित हैं है linit नहीं करना चाहती।
यदि मैं प्रत्येक फ़ोल्डर/दस्तावेज़ों के लिए फ़ील्ड "आकार" जोड़ता हूं, तो सभी माता-पिता के लिए आकार कैसे अपडेट करें? – tuananh
मैं कुछ तरीके आप इस संरचना सकता है के बारे में सोच सकते हैं, लेकिन कुछ भी नहीं स्पष्ट हरा होगा:
वास्तविक फाइल सिस्टम का प्रयोग करें।
नीचे संशोधित, लेकिन वास्तव में, यह केवल एकमात्र जवाब है! –
क्यों? फ्लीपेंट के रूप में आने का इरादा नहीं है, मेरा सवाल ईमानदार है। – iokevins
क्या होगा यदि कोई स्मृति में स्नैपशॉट रखना चाहता है ताकि आईओ न्यूनतम और केवल लिखने के लिए हो। फिर क्या ? ... वास्तविक फ़ाइल सिस्टम का उपयोग उच्च प्रदर्शन प्रणाली के लिए एक विकल्प नहीं है। –
मैं की tree data structure
मुझे पता है कि प्रश्न विशेष रूप से एक डेटा संरचना के लिए पूछ रहा है किसी प्रकार का लेकिन ... का उपयोग कर इस पर गौर करेंगे
आप एक वस्तु उन्मुख भाषा का प्रयोग कर रहे हैं, तो हो सकता है आप उपयोग कर सकते हैं समग्र डिजाइन पैटर्न जो आदर्श रूप से संरचना के इस तरह के पदानुक्रमित पेड़ के लिए उपयुक्त है। आप जो चाहते हैं वह आपको मिलता है।
अधिकांश ओओ भाषा फाइल सिस्टम के लिए कुछ प्रकार के अमूर्तता के साथ आती है, इसलिए वहां मैं शुरू करूंगा। फिर यदि आपको आवश्यकता हो तो इसे उप-वर्गीकृत करें।
मैं निर्देशिकाओं की एक सरणी के रूप में निर्देशिका की अपेक्षा करता हूं जो निर्देशिका या फाइलें हैं, उदाहरण के लिए।
आप मीटर तरह से पेड़ डेटा संरचना
यह एक टिप्पणी होना चाहिए। –
उपयोग कर सकते हैं मेरा सुझाव है चाहिए बी + ट्री .... आप आसानी से अनुक्रमण (पेज, फोल्डर आदि) और सभी का उपयोग कर सकते हैं।
B+ Tree http://commons.wikimedia.org/wiki/File:Btree.png
अधिक जानकारी के लिए: http://ozark.hendrix.edu/~burch/cs/340/reading/btree/index.html
- 1. स्प्रेडशीट्स को लागू करने के लिए उपयोग की जाने वाली डेटा संरचना
- 2. वृक्ष डेटा संरचना के लिए डेटाबेस संरचना
- 3. पायथन टीडीडी निर्देशिका संरचना
- 4. मैट्रिक्स के लिए जावा डेटा संरचना?
- 5. डेटा संरचना
- 6. एक ही निर्देशिका संरचना
- 7. डेटा संरचना की तरह हैश टेबल की तरह, लेकिन अक्सर उपयोग की जाने वाली कुंजी हटा दी जाती है?
- 8. फाइल सिस्टम बनाने के लिए उपयोग की जाने वाली डेटा संरचनाएं?
- 9. बहुआयामी डेटा के लिए सर्वोत्तम डेटा संरचना?
- 10. विकास निर्देशिका संरचना
- 11. मेवेन निर्देशिका संरचना
- 12. कैश निर्देशिका संरचना
- 13. एंड्रॉइड मेवेन निर्देशिका संरचना
- 14. Django निर्देशिका संरचना?
- 15. जावा इंटरफेस निर्देशिका संरचना?
- 16. जावा में डेटा संरचना जैसे संरचना बनाना
- 17. संपूर्ण निर्देशिका संरचना की प्रत्येक फ़ाइल को
- 18. कुशल रेट्रैसिंग के लिए डेटा संरचना/दृष्टिकोण
- 19. पायथन सूची के लिए अंतर्निहित डेटा संरचना क्या है?
- 20. एम्बरजेएस परियोजना निर्देशिका संरचना की स्थापना?
- 21. डेटा संरचना विकसित करना
- 22. एक यादृच्छिक दुनिया के लिए डेटा संरचना
- 23. खेलों में स्तरों के लिए डेटा संरचना
- 24. टेक्स्ट एडिटर के लिए डेटा संरचना
- 25. डेटा संरचना UITableView डेटासोर्स
- 26. समवर्ती डेटा संरचना डिजाइन
- 27. जावा डेटा संरचना सवाल
- 28. लोड पासा के लिए डेटा संरचना?
- 29. रस्सी डेटा संरचना
- 30. एमएसबिल्ड निर्देशिका संरचना सीमा वर्कअराउंड
विनिर्देश से परखने के बाद, एक फ़ोल्डर फ़ोल्डर और दस्तावेजों का एक मिश्रण शामिल नहीं हो सकता? और आपके पास खाली सबफ़ोल्डर नहीं हो सकते हैं? कृपया सटीक रहें। –
असल में, एक हिस्सा कहता है कि फ़ोल्डर में मिश्रण नहीं हो सकता है; एक और हिस्सा बताता है कि वे कर सकते हैं। –