2009-04-15 14 views
7

This question में संख्या या एकाधिक विकल्प फ़ील्ड जैसे डेटा के लिए डेटाबेस इतिहास/संशोधन योजना को डिज़ाइन करने का कुछ उत्कृष्ट कवरेज शामिल है।टेक्स्ट संशोधन के लिए डेटाबेस डिज़ाइन

हालांकि, बड़े टेक्स्ट फ़ील्ड की अधिक चर्चा नहीं होती है, जैसा अक्सर ब्लॉग/क्यू & ए/विकी/दस्तावेज़ प्रकार सिस्टम में मिलता है।

तो, डेटाबेस आधारित संपादन प्रणाली में टेक्स्ट फ़ील्ड के इतिहास को संग्रहीत करने के लिए क्या अच्छा अभ्यास माना जाएगा? डेटाबेस में इसे एक अच्छा विचार भी संग्रहीत कर रहा है?

+0

मुझे लगता है कि आप एक लिंक एम्बेड करना चाहते हैं ("यह प्रश्न शामिल है ...") तो कृपया अपनी पोस्ट संपादित करें और इसे शामिल करें। –

+0

लिंक स्वरूपण को सही किया गया। – Cerebrus

उत्तर

4

मैं एक विकी इंजन विकसित करता हूं और पृष्ठ/आलेख संशोधन डेटाबेस तालिका में संग्रहीत होते हैं। प्रत्येक संशोधन में अनुक्रमिक संशोधन संख्या होती है, जबकि "वर्तमान" संशोधन -1 के साथ चिह्नित होता है (केवल NULL से बचने के लिए)।

संशोधन पाठ को संग्रहीत किया गया है, अलग नहीं है या ऐसा कुछ नहीं है।

मुझे लगता है कि प्रदर्शन कोई समस्या नहीं है क्योंकि आप पुराने संशोधनों को बहुत बार एक्सेस करने की संभावना नहीं रखते हैं।

+0

मैंने वही काम किया है, अब तक मेरे लिए ठीक काम करता है। प्रणाली अब 2 साल के आसपास है। –

1

अक्सर दस्तावेज़ के संस्करणों को ट्रैक करने का सबसे समझदार तरीका यह है कि इसमें किए गए परिवर्तनों का ट्रैक रखें। फिर, यदि किसी विशेष संस्करण का अनुरोध किया जाता है तो इसे वर्तमान दस्तावेज़ और परिवर्तनों के आंशिक सेट से पुनर्निर्मित किया जा सकता है।

इसलिए यदि आपके पास किसी दस्तावेज़ में परिवर्तनों के प्रकारों का वर्णन करने का एक अच्छा तरीका है (यह दस्तावेज़ पर निर्भर करता है और इसका उपयोग कैसे किया जाता है) पर निर्भर करता है तो हर तरह से परिवर्तनों को ट्रैक करने के लिए डेटाबेस का उपयोग करें और इसलिए संस्करण । Document (ID, Name) और DocumentRevision (ID, DocumentID, Contents) टेबल काम करेगा:

+0

संशोधन के बीच केवल अंतर को संग्रहीत करने से अंतरिक्ष बचाने का लाभ होता है, लेकिन यह एक विशिष्ट संशोधन को पुनः प्राप्त/पुनर्निर्माण की प्रक्रिया को धीमा कर देता है और यह डेटा भ्रष्टाचार की संभावनाओं को भी बढ़ाता है (यदि कोई संशोधन गुम हो जाता है?)। –

+0

हां, वे मान्य अंक हैं। इष्टतम दृष्टिकोण कहीं बीच में है और मुझे लगता है कि मुझे लगता है कि प्रकार के डेटा के लिए काफी संवेदनशील होगा। किसी शब्द या दो की वर्तनी को सही करने के मामले में, ऐसा लगता है कि पूरे दस्तावेज़ को फिर से स्टोर करने के लिए ओवरकिल की तरह लगता है। – CurtainDog

+0

@ डारियो मैं इस प्रश्न का उत्तर देता हूं, और उपरोक्त हूं, लेकिन मैं यहां आपकी टिप्पणी से सहमत नहीं हूं। अपने डेटाबेस से डेटा "खोने" का डर अच्छा तर्क नहीं है और एक विशिष्ट संशोधन को पुनर्प्राप्त करने की प्रक्रिया को धीमा करना एक समस्या से कम है, जैसा कि आप स्वयं बताते हैं, क्योंकि आप अक्सर पुराने संस्करणों तक पहुंचने की संभावना नहीं रखते हैं। – Mocky

2

HDD कला की वर्तमान स्थिति को देखते हुए, यह सिर्फ प्रयास पाठ भंडारण तंत्र अनुकूलन करने के लिए कोशिश कर रहा लायक नहीं है। DocumentRevision में "रिपोजिटरी" -वाइड संशोधन संख्या के रूप में भी कार्य कर सकता है। यदि यह वह व्यवहार नहीं है जिसे आप चाहते हैं, तो प्रत्येक दस्तावेज़ संशोधन में एक अलग VersionID असाइन करें।

संबंधित मुद्दे