2010-09-30 14 views
8

से अधिक आधुनिक प्रवृत्ति है, मैंने हाल ही में घोषणा की है कि वे सक्रिय रिकॉर्ड से डेटा मैपर तक अपने कार्यान्वयन को स्थानांतरित करने की योजना बना रहे हैं। इस विषय का मेरा ज्ञान बहुत सीमित है। तो उन लोगों के लिए एक सवाल जो बेहतर जानते हैं, डाटा मैपर सक्रिय रिकॉर्ड से नया है? सक्रिय रिकॉर्ड आंदोलन शुरू होने पर यह आसपास था? दोनों एक साथ कैसे जुड़े हैं?क्या डेटा मैपर सक्रिय रिकॉर्ड

आखिरकार जब से मैं डेटाबेस व्यक्ति नहीं हूं और इस विषय के बारे में कुछ नहीं जानता, तो मुझे डेटा ओपर कार्यान्वयन में स्थानांतरित करने वाले ओआरएम का पालन करना चाहिए, जैसा कि मेरे लिए इसमें कोई सॉफ्टवेयर लिखने के रूप में है (डेटा व्यक्ति नहीं) ?

उत्तर

19

डेटामैपर अधिक आधुनिक या नया नहीं है, लेकिन ओआरएम के लिए बस अधिक उपयुक्त है।

लोगों का मुख्य कारण बदलता है क्योंकि ActiveRecorddoes not make for a good ORM। एक एआर डेटाबेस तालिका में एक पंक्ति लपेटता है या देखता है, डेटाबेस पहुंच को समाहित करता है, और उस डेटा पर डोमेन तर्क जोड़ता है। तो परिभाषा के अनुसार, एक एआर डेटाबेस रिकॉर्ड का 1: 1 प्रतिनिधित्व है, जो इसे सरल सीआरयूडी के लिए विशेष रूप से उपयुक्त बनाता है।

कुछ लोगों ने अपने एआर को संबंधित डेटा लाने का जोड़ा, जिससे लोगों को विश्वास था कि एआर एक ओआरएम है। यह नहीं। ओआरएम का बिंदु object relational impedance mismatch से अपने डेटाबेस संरचना और आपके डोमेन ऑब्जेक्ट्स से निपटना है। एआर का उपयोग करते समय, आपके पास इस प्रतिबाधा मेल नहीं है क्योंकि आपका एआर डेटाबेस पंक्ति का प्रतिनिधित्व करता है और उचित ओओ डिज़ाइन नहीं। आप अपने ऑब्जेक्ट्स पर अपने डीबी लेआउट को बांध रहे हैं। ऑब्जेक्ट-रिलेशनल व्यवहार पैटर्न में से कुछ अभी भी लागू किए जा सकते हैं (उदाहरण के लिए आलसी लोडिंग)।

एआर की अक्सर आलोचना करने का एक अन्य कारण यह है क्योंकि यह दो चिंताओं को जोड़ता है: व्यवसाय तर्क और डीबी एक्सेस तर्क। इससे अवांछित युग्मन होता है और इसके परिणामस्वरूप बड़े अनुप्रयोगों में कम रखरखाव और लचीलापन हो सकता है। दो परतों के बीच कोई अलगाव नहीं है। युग्मन हमेशा कम लचीलापन की ओर जाता है।

दूसरी तरफ वस्तुओं और डेटाबेस के बीच डेटा को एक दूसरे से और मैपर से स्वतंत्र रखने के दौरान डेटा ले जाता है। जबकि कार्यान्वित करना अधिक कठिन है, यह आपके आवेदन में अधिक लचीला डिज़ाइन की अनुमति देता है। आपके डोमेन ऑब्जेक्ट्स को अब डीबी संरचना से मेल नहीं करना पड़ेगा। डीएएल और डोमेन परत decoupled हैं।

0

मेरी 2 सेंट:

DataMapper ActiveRecord से अधिक नया। मुझे डेटामैपर का वाक्यविन्यास बेहतर पसंद है; यह अधिक स्पष्ट और कम "जादुई" है। मैं और कारणों से गुजर सकता हूं, लेकिन वे यहां सूचीबद्ध हैं: http://datamapper.org/why

ActiveRecord में बहुत अधिक दस्तावेज हैं।

+0

एआर और डेटामैपर भाषा अज्ञेयवादी डिजाइन पैटर्न हैं। आप आरओआर दुनिया में ठोस कार्यान्वयन के प्रति प्रतिक्रिया दे रहे हैं, जो कि ओपी ने नहीं पूछा था। – Gordon

+0

जब मैंने इसका उत्तर दिया, तो सवाल बदल गया है :( – phaedryx

+0

प्रश्न कभी नहीं बदला गया। केवल टैग संपादित किए गए थे। – jblue

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