मुझे किसी प्रकार की रिपोर्टिंग (लॉगिंग) सेवा करने के लिए कहा गया था। कर्मचारी ने कई कंपनियों में स्थानीय रूप से स्थापित वेब एप्लिकेशन (केवल कुछ गतिशील वेबसाइट, PHP में लिखा है) स्थापित किया है। यह वेब ऐप किसी प्रकार का सर्वेक्षण है। सभी डेटा स्थानीय डेटाबेस पर सहेजा जाता है, लेकिन अब आवश्यकता यह है कि प्रत्येक डेटा सबमिट करने के बाद यह डेटा (सर्वेक्षण का परिणाम) केंद्रीय सर्वर पर भी भेजा जाएगा।रेल में एक एआर मॉडल के भीतर एकाधिक डेटाबेस टेबल 3
चार प्रकार के सर्वेक्षण हैं। उन्होंने इसे इस तरह से व्यवस्थित किया है कि कई परियोजनाएं हैं, और प्रत्येक परियोजना में प्रत्येक प्रकार का केवल एक सर्वेक्षण हो सकता है (यहां एसटीआई?) और सर्वेक्षण एक परियोजना से संबंधित है। प्रत्येक सर्वेक्षण को स्थानीय ऐप से एक रिपोर्ट प्राप्त होगी, इसलिए इसमें कई रिपोर्टें होंगी। इस रिपोर्ट को लॉग करने वाले रेल 3 एप को इस तर्क को किसी भी तरह नकल करना चाहिए। पहला सवाल यह है: क्या यह एआर संरचना आपके लिए समझ में आता है?
Project-1--------1-Survey-1-------*-Report
Project
has_one :survey
has_many :reports, :through => :survey
Survey
belongs_to :project
has_many :reports
Report
belongs_to :survey
दूसरा प्रश्न एक एआर मॉडल के लिए एकाधिक टेबल रखने के बारे में है। यदि सभी डेटा reports
तालिका में संग्रहीत किए जाएंगे, तो तालिका बहुत जल्दी हो जाएगी, और विशिष्ट सर्वेक्षण से संबंधित रिपोर्ट के लिए कुशल पूछताछ कुछ समय बाद समस्या हो सकती है। शायद प्रत्येक सर्वेक्षण के लिए अलग-अलग टेबल रखना बेहतर होगा? reports_<survey_id>
की तरह। क्या यह संभव है?
इसके अलावा, मुझे किसी भी तरह से MySQL का उपयोग करने के लिए मजबूर किया गया है, लेकिन यदि कोई दूसरा है, तो इसके लिए बेहतर समाधान है, मैं इसे धक्का देने की कोशिश कर सकता हूं।
आप अभी भी यहाँ हैं, तो आप इस पढ़ने के लिए धन्यवाद :)
धन्यवाद, आसान लग रहा है। मुझे आशा है कि इससे कोई समस्या नहीं आएगी। – Ernest
समस्याएं होंगी;) क्योंकि, आपको इसे मैन्युअल रूप से नियंत्रित करना चाहिए। और जब आप सर्वेक्षण – Anton
@ एंटन बनाते हैं तो नई रिपोर्ट तालिका बनाएं? यह एक गड़बड़ की तरह लगता है। Http://stackoverflow.com/questions/44145/database-sharding-and-rails – coreyward