2009-12-10 8 views
9

मैं वर्तमान में एक पोस्टिंग वेबसाइट लिख रहा हूं जिसके लिए पदों पर संस्करण नियंत्रण होना आवश्यक है। पोस्ट को सहेजने और नियंत्रित करने के लिए, मुझे नहीं पता कि मुझे डेटाबेस और तकनीक की अवधि में इसे कैसे कार्यान्वित करना चाहिए।डेटाबेस सामग्री के लिए संस्करण नियंत्रण लागू करने का कोई अच्छा तरीका है?

क्या कोई इस से अनुभव करता है जो मेरी मदद कर सकता है?

मैंने देखा है कि वर्डप्रेस केवल 1 तालिका में संस्करण नियंत्रण करता है, जो पोस्ट है। मैं यह भी करने का सुझाव देता हूं क्योंकि समान मात्रा में डेटा और फ़ील्ड के साथ 2 टेबलों में लिखना मुश्किल होता है।

उत्तर

3

मुझे पता है कि स्टैक ओवरफ्लो संस्करणों के बीच डेल्टा स्टोर करता है। जो मैंने दूसरों को देखा है, वह पहले की तरह एक और टेबल स्थापित करता है लेकिन लेखक और एक संस्करण या टाइमस्टैम्प के साथ। आप डेटाबेस ट्रिगर का उपयोग कर अन्य तालिका में रिकॉर्ड्स को पुश कर सकते हैं ताकि आपको एप्लिकेशन स्तर पर बदलाव करने के बारे में ज्यादा चिंता न करें।

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

+0

क्या आप एक बार फिर से मेरी पोस्ट पढ़ सकते हैं। मैंने अतिरिक्त विवरण जोड़ा है ...धन्यवाद – DucDigital

3

मैं दो टेबल बनाउंगा, एक "लाइव संस्करण" तालिका है और दूसरा एक "संग्रह" तालिका है। जब कोई नया संस्करण बनाया जाता है, तो मौजूदा लाइव संस्करण को संग्रह तालिका में ले जाएं (उचित टाइमस्टैम्प और लेखक नोट्स के साथ) और लाइव टेबल पर नया लाइव संस्करण जोड़ें।

संग्रह तालिका में लाइव टेबल के समान स्कीमा होगा, सिवाय इसके कि इसमें अतिरिक्त कॉलम भी होंगे जो आपके द्वारा समर्थित संस्करण (संस्करण संख्या, नोट्स, टाइमस्टैम्प इत्यादि) के बारे में मेटाडेटा धारण करेंगे।

+0

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

2

इसे नमक के एक बड़े अनाज के साथ लें, लेकिन, आपके पास एक मूल आईडी हो सकती है जो एक ही टेबल पर प्राथमिक कुंजी से जुड़ जाती है जो इंगित करती है कि यह वर्तमान संस्करण है या नहीं। यह एक तरीका है जिसे मैंने कुछ समय पहले एक सीएमएस सिस्टम के लिए उपयोग किया था ... आप एक संशोधन इतिहास के लिए एक सामान्य आईडी चाहते हैं (ताकि किसी आइटम के लिए सभी ऐतिहासिक प्रविष्टियां प्राप्त न हो जाएं)। आप इसे बाद के संस्करणों के साथ पहले संस्करण की आईडी समेत ऐसा कर सकते हैं ताकि आप पूरी तरह से आसानी से प्राप्त कर सकें।

मेरी .02

+0

यह एक आम और वैध दृष्टिकोण है। मेरा सुझाव है कि यदि आप बहुत सारे डेटा की उम्मीद कर रहे हैं जो आप किसी और चीज़ के साथ जाते हैं, हालांकि। मैंने पाया है कि SQL सर्वर इस मॉडल के साथ प्रदर्शन समस्याओं में चला सकता है। SQL सर्वर 2008 में फ़िल्टर किए गए इंडेक्स के साथ यह अलग हो सकता है, हालांकि ... –

+0

सच है, लेकिन, थोड़ा कैशिंग यहां एक लंबा रास्ता तय कर सकता है। – ccook

2

ऐसा लगता है कि तुम सिर्फ पंक्ति पर एक रिकार्ड संस्करण संख्या चाहते हैं। यह एक संख्या है जो नवीनतम संस्करण की पहचान करती है। हर बार जब आप डेटा अपडेट करते हैं तो आप वास्तव में एक नई पंक्ति डालते हैं और रिकॉर्ड संस्करण संख्या को टक्कर देते हैं। जब आप डेटा प्राप्त करने के लिए क्वेरी करते हैं, तो आप केवल अधिकतम रिकॉर्ड संस्करण संख्या के साथ पंक्ति प्राप्त करने के लिए क्वेरी करते हैं। ट्रिगर्स का उपयोग रिकॉर्ड संस्करण संख्या उत्पन्न करने के लिए किया जा सकता है, इसलिए आपको डालने के दौरान संख्या उत्पन्न करने की चिंता करने की आवश्यकता नहीं है।

यदि आप पूर्ण संस्करण वाले संस्करण नियंत्रण में जाना चाहते हैं, तो आपको पंक्ति पर कुछ प्रकार की स्थिति फ़ील्ड की आवश्यकता है, साथ ही यह आपको बताएगा कि यह संस्करण वापस/हटाया गया/स्वीकृत है या नहीं। जब आप नवीनतम प्राप्त करते हैं, तो आप अधिकतम संशोधन नियंत्रण संख्या वाली पंक्ति का चयन करते हैं जिसमें उचित स्थिति होती है।

यदि आप सिर्फ पदों का इतिहास सहेजना चाहते हैं और वास्तव में संशोधन नियंत्रण नहीं है तो आप केवल रिकॉर्ड संस्करण संख्या तकनीक का उपयोग कर सकते हैं।

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

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