2012-04-30 9 views
9

मैं एक मौजूदा जावा शॉपिंग कार्ट ऐप को संशोधित करना चाहता हूं ताकि इसे अमेज़ॅन डायनेमो डीबी या एनओएसक्ल डेटाबेस के साथ काम करने के लिए संशोधित किया जा सके। मोंगो डीबी ... लेकिन पारंपरिक MySQL डीबी एक रिलेशनल डीबी है- इसमें समग्र कुंजी/प्राथमिक/विदेशी कुंजी हैं - इसके विपरीत, अमेज़ॅन डायनेमो डीबी में या तो एक प्राथमिक कुंजी है, या एक समग्र प्राथमिक कुंजी जिसमें 2 फ़ील्ड शामिल हैं ...किसी मौजूदा एसक्यूएल डेटाबेस (जैसे मोंगो डीबी या अमेज़ॅन डायनेमो डीबी) के लिए मौजूदा मॉडल में मौजूदा रिलेशनल डेटाबेस मॉडल को परिवर्तित करने के लिए कैसे करें

मेरे पास संबंधपरक डेटाबेस का विस्तृत डेटा मॉडल है ... अब मैं इसे बदलने के बारे में कैसे जा सकता हूं ताकि मेरे पास अमेज़ॅन डायनेमो डीबी में एक डेटाबेस हो जो ऐप को डायनेमो डीबी (यानी कोई एसक्यूएल डेटाबेस)? क्या ऐसा करने के दौरान कोई सर्वोत्तम प्रथाओं/सावधानियां ध्यान में रखी जानी चाहिए? क्या इसमें एप्लिकेशन कोड को फिर से लिखने में बहुत सारे काम शामिल होंगे? या क्या मैं ऐप के तर्क को संशोधित किए बिना डेटाबेस स्तर पर सभी परिवर्तनों को संभाल सकता हूं? इसके अलावा, क्या कोई ऐसा उपकरण है जो इस काम का सबसे बड़ा हिस्सा करता है?

+0

जहां तक ​​मैं समझता हूं (अगर मैं गलत हूं तो मुझे सही करें), एसक्यूएल से संबंधित सभी कोड को बदलना होगा। जब भी आप कुछ पूछते हैं, तो आपको इसे कुंजी से देखना होगा या आपको डीबी को स्कैन करना होगा जब तक कि आप जो भी खोज रहे हैं उसे प्राप्त न करें। यह धीमा लग सकता है, लेकिन जब सही हो तो यह MySQL से बहुत तेज है। – Kiril

+0

आदमी, क्या आपको सच में लगता है कि स्कीमा/डेटाफ्लो ज्ञान के बिना जवाब देना संभव है? मैं वास्तव में मोंगो के साथ काम कर रहा हूं और अब तक जो मुख्य बात मैंने सीखा है वह यह है कि जिस तरह से आप अपने डेटा का उपयोग कर रहे हैं, वह आपकी नई स्कीमा को निर्देशित करता है। –

उत्तर

2

इसके लिए कोई स्वचालित तरीका नहीं है। MongoDB जैसे NoSQL डेटाबेस MySQL के समान डेटा संरचनाओं को मैप नहीं करते हैं। विभिन्न प्रदर्शन विशेषताओं और विभिन्न तरीकों से आप डेटा कैसे स्टोर कर सकते हैं। कुछ मामलों में आप एक एसक्यूएल टेबल को एक संग्रह में जोड़ते हैं जहां आप बस उसी दस्तावेज़ में शामिल डेटा शामिल करते हैं।

आप कैसे और कब ऐसा करेंगे, यह सब इस बात पर निर्भर करता है कि आप डेटा को किस प्रकार तर्कसंगत रूप से समूहित करेंगे, लेकिन उतना ही वर्कलोड जिस प्रकार आप अपना डेटा डाल रहे हैं। उदाहरण के लिए, भारी पढ़ने और छोटे लिखने के लिए, आप उस मामले की तुलना में डेटा को अलग-अलग स्टोर कर सकते हैं जहां आपके पास भारी लिखना है और कुछ पढ़ते हैं।

अपने एप्लिकेशन से डेटाबेस में इंटरफ़ेस को फिर से करने के अलावा, आपको अपने डेटा मॉडल को फिर से आर्किटेक्चर करना होगा। यह आपकी एसक्यूएल संरचना को डिजाइन करने के रूप में उतना ही काम करेगा और यह पर काम करता है कि आप एसक्यूएल में इसे कैसे करेंगे। नोएसक्यूएल बनाम एसक्यूएल दो पूरी तरह से अलग जानवर हैं, जिन्हें अलग-अलग माना जाना चाहिए!

2

यहाँ एक शुरुआत है: http://mongify.com/ यह नहीं एक "पूरी तरह से स्वचालित" समाधान है, लेकिन ऐसा लगता है कि यह एक MongoDB एप्लिकेशन के रूप में काम करने के लिए किसी SQL एप्लिकेशन रिवर्स इंजीनियरिंग के लिए एक 'आउटलाइन' के रूप में कम से कम उपयोग करने के लिए एक उपयोगी उपकरण हो सकता है।

+0

कोई मौका आप mongify से संबद्ध हैं? –

संबंधित मुद्दे