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

अपसामान्यीकृत डेटाबेस तालिकाओं को अद्यतन करना

इस स्थिति से निपटने के कुछ तरीके हैं:

  1. आप डेटाबेस ट्रिगर का उपयोग कर सकते हैं। यह एक डेटाबेस अज्ञेयवादी विकल्प नहीं है और जहाँ तक मुझे पता है इसका RoR समर्थन न के बराबर है। यदि आपकी स्थिति के लिए बिल्कुल कोई डेटा-असंगतता की आवश्यकता नहीं है, तो शायद यह आपके लक्ष्य को प्राप्त करने का सबसे प्रभावी तरीका होगा, लेकिन मैं नहीं हूं एक डीबी विशेषज्ञ।
  2. आप दो तालिकाओं को समय-समय पर सिंक करने के लिए बैच ऑपरेशन का उपयोग कर सकते हैं। यह विधि आपकी दो तालिकाओं को अलग-अलग बहने देती है और फिर डेटा को हर बार फिर से सिंक्रनाइज़ करती है। यदि आपकी स्थिति इस बहाव को होने देती है, तो यह एक अच्छा विकल्प हो सकता है क्योंकि यह डीबी को ऑफ घंटों के दौरान अपडेट करने की अनुमति देता है। यदि आपको हर 5 मिनट में सिंक करने की आवश्यकता है तो आप शायद अन्य विकल्पों पर गौर करना चाहेंगे। इसे आपके रूबी कोड द्वारा नियंत्रित किया जा सकता है, लेकिन इसके लिए किसी प्रकार के बैकग्राउंड जॉब रनर की आवश्यकता होगी (क्रॉन, डिलेड_जॉब, रेडिस, आदि)
  3. आप अपने रेल मॉडल के अंदर से कॉलबैक का उपयोग कर सकते हैं। आप "after_update :sync_denormalized_data" . का उपयोग कर सकते हैं . यह कॉलबैक डेटाबेस स्तर के लेनदेन में लपेटा जाएगा (यह मानते हुए कि आपका डेटाबेस लेनदेन का समर्थन करता है)। आपके पास हर बार दो लिखने की कीमत पर रेल स्तर का कोड, सुसंगत डेटा, और पृष्ठभूमि प्रक्रिया की कोई आवश्यकता नहीं होगी।
  4. कुछ तंत्र जिसके बारे में मैंने सोचा नहीं....

इस प्रकार के मुद्दे बहुत हैं आवेदन विशिष्ट। यहां तक ​​कि एक ही एप्लिकेशन के भीतर भी आप शामिल लचीलेपन और प्रदर्शन आवश्यकताओं के आधार पर एक से अधिक विधियों का उपयोग कर सकते हैं।



  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. क्या ORDER BY के बिना LIMIT का उपयोग करना सुरक्षित है?

  3. MySQL की तरह Firebase से गणना डेटा पुनर्प्राप्त करें

  4. php-mysql परिणाम पंक्तियों में डुप्लिकेटिंग फ़ील्ड हटाएं

  5. MySQL WHERE क्लॉज में वर्तमान तिथि