मैं यह पता लगाने की कोशिश कर रहा हूं कि पूर्व-रेडो को अनुमति देने के लिए मेरी डीबी टेबल कैसे डिज़ाइन करें।पूर्ववत-रेडो के साथ एक एसक्यूएल डीबी कैसे डिजाइन करें?
मान लें कि आपने एक कार्य निम्नलिखित संरचना के साथ तालिका है:
id <int>
title <varchar>
memo <string>
date_added <datetime>
date_due <datetime>
अब लगता है कि कुछ दिनों के और एकाधिक लॉग-इन है कि कई संपादन जगह ले लिया है से अधिक; लेकिन उपयोगकर्ता एक संस्करण में वापस जाना चाहता है।
- आप एक अलग तालिका में परिवर्तन पर नज़र रखने के लिए है चाहेंगे - या - आप (एक बेहतर शब्द की कमी के लिए "भूत" पंक्तियाँ,) कार्यों तालिका में परिवर्तन रखने के लिए कोशिश करेंगे?
- क्या आप सभी कॉलम ट्रैक करेंगे या केवल वे जो बदलते हैं?
यदि यह महत्वपूर्ण है, तो मैं MySQL का उपयोग कर रहा हूं। साथ ही, यदि यह मायने रखता है, तो मैं इतिहास (एला फ़ोटोशॉप) दिखाने में सक्षम होना चाहता हूं और किसी उपयोगकर्ता को किसी भी संस्करण पर स्विच करने की अनुमति देता हूं।
बोनस प्रश्न: क्या आप परिवर्तन पर पूरे memo
सेल को सहेज लेंगे या आप केवल डेल्टा को सहेजने का प्रयास करेंगे? कारण मैं पूछता हूं क्योंकि memo
सेल बड़ा हो सकता है और केवल एक शब्द या चरित्र प्रत्येक संशोधन को बदला जा सकता है। माना जाता है कि डेल्टा को सहेजने के लिए पार्सिंग की आवश्यकता होगी, लेकिन अगर अंडो की अपेक्षा अक्सर नहीं की जाती है, तो क्या समय की प्रक्रिया के बजाय अंतरिक्ष को बचाने के लिए बेहतर नहीं होगा?
आपकी मदद के लिए धन्यवाद।
इसी तरह का प्रश्न यहां। [मेरा जवाब] पर एक नज़र डालें (http://stackoverflow.com/questions/5408828/are-there-problems-with-this-soft-delete-solution-using-eav-tables/5410359#5410359) – Ronnis