पर तालिका संशोधनों की ऑडिटिंग/वर्जनिंग को कैसे कार्यान्वित करें हम PostgreSQL पर जावा/स्प्रिंग/हाइबरनेट का उपयोग कर एक नई प्रणाली को कार्यान्वित कर रहे हैं। टेबल्स में रिकॉर्ड (ओं) पर एक संशोधन/हटाना जैसे ही इस प्रणाली को प्रत्येक रिकॉर्ड की प्रतिलिपि बनाने की आवश्यकता होती है। बाद में, उपयोगकर्ताओं को डेटा प्रदर्शित करने के लिए लेखापरीक्षा तालिकाओं की रिपोर्ट से पूछताछ की जाएगी।PostgreSQL
मैं इस ऑडिटिंग/वर्जनिंग फीचर को टेबल पर ट्रिगर करके कार्यान्वित करने की योजना बना रहा था जो संशोधित पंक्ति (हटाई गई पंक्ति) की प्रतिलिपि "TO" को एक टैबलेट ENTITY_VERSIONS कहलाएगा जिसमें लगभग 20 कॉलम होंगे कोलो 1, कॉल 2, कोलो 3, कॉल 4, आदि कहा जाता है जो कॉलम को उपर्युक्त तालिका से स्टोर करेगा; हालांकि, समस्या यह है कि यदि सभी तालिकाओं के संस्करणों को संग्रहीत करने के लिए 1 से अधिक तालिका संस्करण और केवल 1 टैर्गेट तालिका (ENTITY_VERSIONS) है, तो मैं TARGET तालिका कैसे डिज़ाइन करूं?
या यह बेहतर है कि संस्करण की आवश्यकता वाले प्रत्येक तालिका के लिए संस्करण तालिका की प्रतिलिपि होगी?
यदि ऑडिटिंग/वर्जनिंग को लागू करने के लिए पोस्टग्रेएसक्यूएल ट्रिगर्स (और संबंधित संग्रहीत प्रक्रिया) कोड की ओर कुछ पॉइंटर्स साझा किए जाएंगे तो यह बोनस होगा।
पीएस: मैंने Suggestions for implementing audit tables in SQL Server? पर देखा और उत्तर की तरह थोड़े को छोड़कर मुझे पता नहीं चलेगा कि OldValue और NewValue किस प्रकार का होना चाहिए?
पीपीएस: यदि टेबल्स हार्ड डिलीट्स के बजाय सॉफ़्ट डिलीट्स (प्रेत डिलीट्स) का उपयोग करते हैं, तो क्या आपकी कोई सलाह बदलती है?
+1 धन्यवाद। मुझे आश्चर्य है कि "वैश्विक लेखापरीक्षा तालिका" बनाम "प्रत्येक तालिका के लिए लेखापरीक्षा तालिका" होने की ताकत w.r.t रिपोर्टिंग के लिए डेटा पूछताछ कर रही है? – anjanb
यदि आप किसी भी तरह से ग्लोबल ऑडिट तालिका का प्रबंधन करते हैं, तो मैं टाइप कास्टिंग के ALOT को देखता हूं। मेरा मतलब है ... आप सभी कॉलम किस प्रकार स्टोर करेंगे? – rfusca
rfusca: ठीक है। हाँ, यह मेरा संदेह भी था! – anjanb