Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

संस्थाओं पर परिवर्तन संग्रहीत करना:क्या MySQL उचित समाधान है?

अगर मुझे आपके द्वारा बताई गई समस्या का सामना करना पड़ रहा था, तो मैं लॉग टेबल को नीचे की तरह डिजाइन करूंगा:

  1. EntityName :(स्ट्रिंग) इकाई जिसमें हेरफेर किया जा रहा है। (अनिवार्य)
  2. ObjectId :जिस इकाई में हेरफेर किया जा रहा है, प्राथमिक कुंजी।
  3. FieldName :(स्ट्रिंग) इकाई क्षेत्र का नाम।
  4. OldValue :(स्ट्रिंग) इकाई फ़ील्ड पुराना मान।
  5. NewValue :(स्ट्रिंग) इकाई फ़ील्ड नया मान।
  6. UserCode :एप्लिकेशन उपयोगकर्ता अद्वितीय पहचानकर्ता। (अनिवार्य)
  7. TransactionCode :संस्थाओं को बदलने वाले किसी भी ऑपरेशन के लिए एक अद्वितीय लेनदेन कोड (जैसे GUID) (अनिवार्य) की आवश्यकता होगी,
    एक इकाई के कई क्षेत्रों को बदलने पर अद्यतन के मामले में, ये कॉलम सभी परिवर्तनों का पता लगाने के लिए महत्वपूर्ण बिंदु होंगे अपडेट (ट्रांसकेशन)
  8. ChangeDate :कार्यवाही की तिथि। (अनिवार्य)
  9. FieldType :एन्यूमरेशन या टेक्स्ट जो फ़ील्ड प्रकार जैसे टेक्स्ट या डबल दिखा रहा है। (अनिवार्य)

इस दृष्टिकोण को अपनाने से
किसी भी इकाई (तालिका) का पता लगाया जा सकता है
रिपोर्ट पढ़ने योग्य होगी
केवल परिवर्तन लॉग किए जाएंगे।
किसी एकल द्वारा परिवर्तनों का पता लगाने के लिए लेन-देन कोड महत्वपूर्ण बिंदु होगा कार्रवाई।

BTW

Store the changes in the entitychange table and then store the value 
according to its datatype in entitychange_[bool|timestamp|double|string]

आवश्यकता नहीं होगी, एकल तालिका में आपके पास परिवर्तन और डेटा प्रकार होंगे

Use partitioning by HASH(entity_id)

मैं चेंजडेट द्वारा विभाजन करना पसंद करूंगा या चेंजडेट के लिए बैकअप टेबल बनाना पसंद करूंगा जो बैक अप लेने के लिए काफी पुराने हैं और मुख्य लॉग टेबल से रिमूवर हैं

Should I use another database system, maybe MongoDB?

कोई भी डेटा बेस अपनी स्वयं की समस्या और विपक्ष के साथ आता है, आप किसी भी RDBMS पर डिज़ाइन का उपयोग कर सकते हैं। MongoDB जैसे दस्तावेज़ आधारित डेटा बेस की एक उपयोगी तुलना यहां पाया जा सकता है

आशा है कि मददगार होगी।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डॉकर में MySQL रूट पासवर्ड कॉन्फिगरेशन पर जमे हुए हैं

  2. SQL तालिका बदलें - NULL कॉलम मान की अनुमति दें

  3. MySQL डालने के बाद ट्रिगर स्वत:बढ़ा हुआ मान प्राप्त करता है, डालने के बाद अद्यतन फ़ील्ड मान अज्ञात कॉलम त्रुटि देता है

  4. डॉक्ट्रिन टेक्स्ट टाइप कैसे प्राप्त करें?

  5. पीएचपी चेतावनी:पीएचपी स्टार्टअप:गतिशील पुस्तकालय लोड करने में असमर्थ '/usr/lib/php/20151012/msqli.so'