मेरे पास विभिन्न प्रकार के समृद्ध डेटा संरचनाएं हैं (मुख्य रूप से पेड़) कि मैं डिस्क पर बने रहना चाहता हूं, जिसका अर्थ है कि मैं न केवल उन्हें डिस्क पर लिखना चाहता हूं, लेकिन मुझे गारंटी है कि डेटा पूरी तरह से लिखा गया है और एक शक्ति से बच जाएगा -down।आप .NET से डिस्क पर डेटा कैसे बनाते हैं?
दूसरों माता पिता से बच्चे नोड्स देखने तालिकाओं के रूप में फ्लैट डेटाबेस तालिकाओं में समृद्ध डाटा संरचनाओं सांकेतिक शब्दों में बदलना करने के लिए तरीके डिजाइन करने के लिए लग रहे हैं। यह डेटा के खिलाफ SQL क्वेरी चलाने में सुविधा प्रदान करता है लेकिन मुझे इसके लिए कोई आवश्यकता नहीं है: मैं बस अपने पेड़ों को सहेजना और लोड करना चाहता हूं।
स्पष्ट समाधान डेटा बेस में ब्लॉब के रूप में सबकुछ स्टोर करना है: एक प्रविष्टि में शायद एक लंबी स्ट्रिंग होती है। क्या यह डेटाबेस का दुरुपयोग है या एक अनुशंसित अभ्यास है? एक और समाधान एक एक्सएमएल डेटाबेस का उपयोग करने के लिए हो सकता है? क्या डेटाबेस के लिए कोई विकल्प हैं जिन पर मुझे विचार करना चाहिए?
अंत में, मैं तो नेट से बने डेटा के लिए एक टर्नकी समाधान आदर्श होगा एफ # से कर रहा हूँ ...
संपादित करें: कृपया ध्यान दें कि स्वरूपण (जैसे क्रमबद्धता) के रूप में मैं कर सकते हैं अप्रासंगिक है एफ # के साथ स्वरूपों के बीच trivially रूपांतरित करें। यह एक पावती प्राप्त करने के बारे में है कि एक गैर-अस्थिर दुकान (यानी डिस्क प्लेटर) तक सभी तरह से एक लेखन पूरा हो गया है और लिखित डेटा का कोई भी हिस्सा अभी भी अस्थिर दुकान (जैसे रैम कैश) में आयोजित किया जा रहा है ताकि मैं उस ज्ञान में सुरक्षित रह सकता हूं (उदाहरण के लिए डिस्क से डेटा के पुराने संस्करण को हटाकर)।
पुन "टर्नकी समाधान" - कुछ (सभी नहीं) F # संरचनाएं * सामान्य * खिड़की से बाहर हो सकती हैं जो कई दृढ़ता परतों से अपेक्षित होती है - एक डीटीओ कक्षा परत (केवल serialization से पहले) का उपयोग करना स्वीकार्य होगा अगर यह चीजों को सरल बनाता है? इसके अलावा - मुझे संदेह है कि आप * धारावाहिक * और * एसीआईडी * पहलुओं को अलग से देखना चाहते हैं। –
यदि (रीड पर आपकी टिप्पणी को देखते हुए) क्रमबद्धता पहलू कोई मुद्दा नहीं है, तो शायद कोई ACID * दस्तावेज़ * डेटाबेस। –
@Marc: "एसीआईडी दस्तावेज़ डेटाबेस"। बढ़िया, धन्यवाद! –