मैं एक एकीकरण परियोजना जिसमें मैं रिकॉर्ड , बदल लेकिन केवल एक के आधार पर के लिए क्वेरी करने के लिए सक्षम होना चाहिए के लिए डेटाबेस स्कीमा है या नहीं उस रिकॉर्ड के भीतर फ़ील्ड का दिया गया सेट।का ट्रैक रखने के लिए एक डेटाबेस रिकॉर्ड हैश को लागू करने में एक रिकॉर्ड या बदल गया है
तो, उदाहरण के लिए, यहां एक उदाहरण तालिका है:
ग्राहकों
- आईडी
- नाम
- फोन
- फैक्स
- शेष
मुझे उन अभिलेखों को लाने के लिए पूछताछ करने की आवश्यकता है जिनके नाम, फोन या फ़ैक्स फ़ील्ड बदल गए हैं। हालांकि, अन्य क्षेत्रों के खाते में नहीं, यानी, लिया जाना चाहिए अगर बस बकाया राशि फ़ील्ड में परिवर्तन मेरी क्वेरी खींच नहीं चाहिए कि में रिकॉर्ड (इस प्रकार, एक टाइमस्टैम्प क्षेत्र है कि जब कभी भी रिकॉर्ड संशोधित किया गया है अद्यतन करता काम नहीं करता है)।
इसके अलावा, इसे कई अलग-अलग डेटाबेस और प्लेटफॉर्म पर चलाना पड़ता है, इसलिए ट्राइगर्स या कुछ समान रूप से एक विकल्प नहीं है जब तक कि वे MySQL, PostgreSQL, SQL सर्वर, और SQLLite पर नहीं चलेंगे।
फ़ील्ड्स को किसी तृतीय-पक्ष एप्लिकेशन द्वारा संशोधित किया गया है जिसे मैं संशोधित नहीं कर सकता, इसलिए मैं केवल ध्वज नहीं जोड़ सकता और तीसरे पक्ष के एप्लिकेशन को किसी भी प्रासंगिक फ़ील्ड को संशोधित करते समय ध्वज को TRUE पर सेट कर सकता हूं।
मेरा प्रारंभिक समाधान प्रासंगिक फ़ील्ड के एक HASH की गणना करना और इसे 'LastHash' या किसी नए फ़ील्ड में संग्रहीत करना है। फिर, मैं वर्तमान में रिकॉर्ड में मौजूद डेटा के लिए प्रासंगिक फ़ील्ड के हैश की गणना कर सकता हूं, और यदि यह संग्रहीत LastHash से मेल नहीं खाता है, तो मुझे पता है कि यह बदल गया है।
यह बहुत गन्दा लगता है ... लेकिन ऐसा लगता है जैसे यह काम करेगा। क्या कोई बेहतर तरीका है? यदि नहीं, तो क्या हैश को लागू करने का कोई अच्छा तरीका है, इसलिए यह उन परिवर्तनित रिकॉर्ड्स को निकालने के लिए कुशल और बहुत समय लेने वाला नहीं है?
संपादित
कुछ स्पष्टीकरण: अपने आवेदन दोनों और अन्य अनुप्रयोग अद्यतन और इन तालिकाओं में सम्मिलित करें। मैं कर सकता हूं मेरा आवेदन प्रारंभिक हैश की गणना करता है। मैं अन्य एप्लिकेशन को इसकी गणना नहीं कर सकता हूं।
टाइमस्टैम्प कॉलम जो स्वचालित रूप से जब भी एक रिकॉर्ड परिवर्तन सक्षम होते हैं स्वचालित रूप से अपडेट होते हैं, तो वे विभिन्न कॉलम प्रकारों या बहुत ही सरल ट्रिगर्स का उपयोग करके सभी डेटाबेस सिस्टम में दोहराने के लिए पर्याप्त आसान होते हैं।
अतिरिक्त प्रश्न
हैशिंग जाना ... जिस तरह से कुशल हैश एल्गोरिथ्म कि हमेशा के लिए नहीं ले इन रिकॉर्ड के सभी पर गणना करने के लिए होगा किसी भी प्रकार वहाँ है है? एमडी 5 या एसएचए 1 काम कर सकता है, लेकिन ऐसा लगता है कि वे sllloowwww होंगे।
ट्रिगर्स के उपयोग के बिना उस हैश को कैसे डालें/अपडेट करें या ऐप को ऐप को संशोधित करें? –
संपादित करें: मैं अपना आवेदन प्रारंभिक हैश की गणना कर सकता हूं। मैं अन्य एप्लिकेशन को इसकी गणना नहीं कर सकता हूं। –