प्रत्येक रिकॉर्ड को उसकी संपूर्णता में स्टोर करना उनके अंतर को स्टोर करने की तुलना में बहुत आसान है। फिर यदि आप दो संशोधनों का एक अंतर चाहते हैं तो आप PECL Text_Diff
पुस्तकालय
।
मैं रिकॉर्ड के सभी संस्करणों को एक ही तालिका में संग्रहीत करना चाहता हूं और MAX(revision)
के साथ नवीनतम संस्करण को पुनः प्राप्त करना चाहता हूं , एक "वर्तमान" बूलियन विशेषता, या समान। अन्य लोग सामान्यीकरण करना पसंद करते हैं और एक दर्पण तालिका रखते हैं जिसमें गैर-वर्तमान संशोधन होते हैं।
यदि आप इसके बजाय डिफ स्टोर करते हैं, तो आपकी स्कीमा और एल्गोरिदम बहुत अधिक जटिल हो जाते हैं। फिर आपको कम से कम एक "पूर्ण" संशोधन और एकाधिक "diff" संस्करणों को संग्रहीत करने की आवश्यकता होती है, और जब भी आपको पूर्ण संस्करण की आवश्यकता होती है, तो अंतर के एक सेट से एक पूर्ण संस्करण का पुनर्निर्माण करना होता है। (इस प्रकार एसवीएन चीजों को स्टोर करता है। गिट प्रत्येक संशोधन की एक पूरी प्रति संग्रहीत करता है, अलग नहीं।)
प्रोग्रामर का समय महंगा है, लेकिन डिस्क स्थान आमतौर पर सस्ता होता है। कृपया विचार करें कि क्या प्रत्येक संशोधन को पूर्ण रूप से संग्रहीत करना वास्तव में एक समस्या है।