2009-07-11 14 views
14

वहाँ दो चीजें हैं जो आजकल लोकप्रिय होने लगते हैं और मैं सोच रहा था पेशेवरों और कुछ इस तरह का उपयोग करने का विपक्ष क्या हैं: http://codeigniter.com/user_guide/database/active_record.html?ओआरएम और सक्रिय रिकॉर्ड पैटर्न?

एक और बात ORM (उदाहरण के लिए सिद्धांत) है। इनका उपयोग करने के क्या फायदे हैं?

उत्तर

19

ActiveRecord एक पैटर्न ORMs में आम है। सिद्धांत एक ओआरएम है जो ActiveRecord'ish शैली का उपयोग करता है।

सिद्धांत जैसे उपकरणों का उपयोग कर के कुछ लाभ:

  • डाटाबेस स्वतंत्रता: कोड अलग डीबीएस के लिए बंदरगाह के लिए आसान होना चाहिए। उदाहरण के लिए, मैं अक्सर SQLite का उपयोग करके परीक्षण करता हूं और कोड में कोई परिवर्तन किए बिना उत्पादन में MySQL या Postgre का उपयोग करता हूं।
  • वे आपके द्वारा लिखे गए कोड की मात्रा को कम करते हैं: एप्लिकेशन कोड का एक बड़ा हिस्सा डेटाबेस के साथ संचार के साथ संबंधित है। एक ओआरएम उसमें से अधिकतर का ख्याल रखता है, इसलिए आप वास्तविक ऐप लिखने पर ध्यान केंद्रित कर सकते हैं।
बेशक

, वे नुकसान के बिना नहीं आते हैं:

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

आता है मैं तुम्हें "ActiveRecord'ish" द्वारा क्या मतलब है पता नहीं है, लेकिन यहाँ एक उचित वर्णन है: "सिद्धांत 2 PHP 5.4+ के लिए एक ऑब्जेक्ट-रिलेशनल मैपर (ओआरएम) है जो PHP ऑब्जेक्ट्स के लिए पारदर्शी दृढ़ता प्रदान करता है। यह दिल में डेटा मैपर पैटर्न का उपयोग करता है, जिसका उद्देश्य आपके डोमेन/व्यापार तर्क को पूर्णता से पूर्णता से अलग करना है। रिलेश्नल डाटाबेस मेनेजमेन्ट सिस्टम।" स्रोत: http://doctrine-orm.readthedocs.org/en/latest/tutorials/getting-started.html#what-is-doctrine – ZeeCoder

+1

@ZeeCoder मैं गलत लेकिन विचार मैं 2009 में इस जवाब लिखा हो सकता है, मैं उन्हें लगता है कि अभी तक सिद्धांत 2 बाहर नहीं था। सिद्धांत 1 में उनके दूसरे (और बहुत बेहतर, मुझे जोड़ना चाहिए) संस्करण –

+0

मेरा बुरा होने के मुकाबले कहीं अधिक सक्रिय रिकार्ड-स्टाइल एपीआई था। मैंने कभी भी सिद्धांत 2 का उपयोग किया है :) – ZeeCoder

2

के लिए उन्हें समझना मुश्किल हो सकता है, मैंने इसे हल्के वजन और समझने योग्य रखने की कोशिश की। यहां तक ​​कि अपने आप Mootools आधारित कक्षा जेनरेटर :)

http://www.schizofreend.nl/Pork.dbObject/

यह बाहर की जाँच :)

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