जवाबों:
यह इतना नहीं है कि क्या लाभ हैं, लेकिन इस बारे में अधिक है कि किसी विशेष स्थिति के लिए क्या उपयुक्त है जैसे आपने कहा है। आप नोड के साथ और 99% स्थितियों के लिए बहुत कुछ का प्रतिनिधित्व कर सकते हैं (जैसा कि मैंने कम से कम पाया है) आपको कस्टम इकाई प्रकारों को लागू करने की आवश्यकता नहीं होगी।
मैं हमेशा taxonomy_term
इकाई प्रकार के बारे में सोचता हूं कि एक अच्छा उदाहरण क्यों नहीं सब कुछ एक नोड / सामग्री प्रकार होना चाहिए:
एक वर्गीकरण शब्द अनिवार्य रूप से विभिन्न संस्थाओं को एक साथ समूहित करने के लिए है और जैसे नोड के लिए समान कार्यक्षमता की आवश्यकता नहीं है। जब आप सैद्धांतिक रूप से इस कार्यक्षमता (शायद एक नोड संदर्भ क्षेत्र के साथ) को निष्पादित करने के लिए एक सामग्री प्रकार का उपयोग कर सकते हैं , तो एक टैक्सोनॉमी शब्द को नोड के रूप में एक ही काम करने की आवश्यकता नहीं है, इसलिए यह वास्तव में ऐसा करने का कोई मतलब नहीं है। user
और taxonomy_vocabulary
इकाई प्रकारों के लिए भी यही कहा जा सकता है ।
इसलिए एक वर्गीकरण शब्द एक अलग इकाई के रूप में बनाया गया है और इसे केवल वही करने के लिए क्रमादेशित किया गया है, जबकि अभी भी खेतों से जुड़े होने में सक्षम होने का लाभ मिल रहा है, आदि।
मुझे लगता है कि सरल उत्तर यह है कि जब एक नोड / सामग्री प्रकार वह नहीं करता है जो आपको इसकी आवश्यकता होती है, या यह बहुत कम लाभ के लिए ओवरकिल / ओवरहेड की एक बड़ी मात्रा है, तो आपको एक कस्टम इकाई लिखने का चयन करना चाहिए।
यह केवल मेरे व्यक्तिगत अनुभव पर आधारित है; मुझे यह सुनने में दिलचस्पी होगी कि ड्रुपल कोर डेवलपमेंट के साथ सीधे तौर पर किसी ने क्या कहा है।
अंगूठे का एक बहुत ही सरल नियम मैं उपयोग करता हूं कि क्या आपकी सामग्री को सार्वजनिक रूप से प्रदर्शित करने की आवश्यकता है। यदि ऐसा है, तो नोड के लिए जाएं, यदि एक इकाई नहीं चुनते हैं। Entityforms अब आपको अपनी संस्थाओं को भरने के लिए एक इंटरफ़ेस बनाने की अनुमति देता है।
उदाहरण के लिए, D6 के साथ बनाई गई वेबसाइट पर हम एक विज्ञापन सामग्री प्रकार (इसकी छवि फ़ील्ड, शुरुआत / समाप्ति तिथि ...) के साथ निर्माण करते हैं, लेकिन फिर आपको इसे डिफ़ॉल्ट रूप से प्रकाशित नहीं करना होगा और अपने संपादकों को संपादित करने का अधिकार देना होगा / इन नोड को देखें और आशा है कि कोई भी दृश्य / खोज इन्हें बाहरी दुनिया में प्रदर्शित नहीं करेगा। यह काफी बोझिल है और संस्थाओं से निपटना आसान होगा।
एक इकाई एक विशिष्ट उपयोग के मामले का प्रतिनिधित्व करती है ।
मेरा मानना है कि इस सरल परिभाषा का श्रेय फागो को जाता है , लेकिन मैं एक संदर्भ खोजने के लिए आलसी हूं।
यदि हम चाहते थे तो हम सभी उपयोग के मामलों के लिए Content
(उर्फ Nodes
) का उपयोग कर सकते थे, लेकिन अक्सर इसका कोई मतलब नहीं होता है।
Content
एक लेखक और दोनों टिप्पणियों और मेनू स्थान के लिए सेटिंग्स है।
Users
, एक उपयोग के मामले को अलग से पर्याप्त रूप से प्रस्तुत करें Content
क्योंकि user
उपरोक्त दोनों में से कोई भी कोई मतलब नहीं है, जबकि दूसरी तरफ, एक user
ई-मेल और एक पासवर्ड होना चाहिए।
Taxonomy terms
बाहर खड़े रहो क्योंकि उनके पास कार्यक्षमता में अंतर्निहित पदानुक्रम में व्यवस्थित होने के लिए, यहां तक कि एक परिपत्र भी है।
यदि आपका उपयोग-मामला मौजूदा इकाई के समान है, तो उस इकाई का उपयोग करके जाएं। यदि आपकी इकाई किसी भी मौजूदा लोगों की तुलना में काफी अलग नियमों द्वारा शासित है, तो एक नया बनाएं।
संस्थाओं के लिए एक परिचय भी है , लेकिन दुर्भाग्य से यह वास्तव में आपके प्रश्न का उत्तर नहीं देता है।
मुझे लगता है कि यह सभी संदर्भों के बारे में है, एक नोड का उपयोग बड़े पैमाने पर सामग्री के लिए किया जाता है ताकि ब्लॉग, लेख, फ़ेक आदि हो। जबकि उपयोगकर्ता जैसे कर्मचारी, ग्राहक आदि प्रोफाइल के लिए उपयोगकर्ता जब आप एक नई ईर्ष्या पैदा कर सकते हैं:
हालांकि आप एक समर्थन टिकट की तरह कुछ के लिए एक नोड का उपयोग कर सकते हैं यह सबसे अच्छा टेम्पलेट और चूक नहीं हो सकता है ... आशा है कि मदद करता है।
एंटिटीज़ को नोड्स की तुलना में कम ओवरहेड के साथ बनाया जा सकता है क्योंकि उनके पास सभी भारी-फ़ंक्शनल फ़ंक्शंस होने की आवश्यकता नहीं है जो इकाइयां हैं।
इसका मतलब यह भी है कि भंडारण सरल हो सकता है - यदि आप चाहते हैं तो बिना JOINS के सभी जानकारी को हड़पने के लिए आप उनका निर्माण कर सकते हैं। सभी क्षेत्रों में सिर्फ एक साफ मेज।
यह बहुत बड़ा लाभ हो सकता है यदि आपके पास बहुत सारे फ़ंक्शंस हैं जिन्हें संस्थाओं पर प्रश्न करने की आवश्यकता है, और आप डेटाबेस के लिए कई प्रश्नों को एक साथ अद्यतन कर रहे हैं। यदि आप यह सुनिश्चित कर सकते हैं कि डेटा एक ही तालिका में अपेक्षाकृत आत्म-निहित है, तो आपके पास डेटा भ्रष्टाचार की कम चिंताएं और संभावनाएं हैं।
एक सामग्री प्रकार साइट सामग्री के लिए डिज़ाइन किया गया है। यही है, प्रत्येक सामग्री प्रकार को साइट पर प्रकाशित और प्रदर्शित होने के लिए डिज़ाइन किया गया है। उदाहरण के लिए, एक लेख (बॉक्स से बाहर) पहले पृष्ठ पर प्रदर्शित होने के लिए डिज़ाइन किया गया है।
अब, मान लें कि आप एक रोजगार या अपार्टमेंट एप्लिकेशन फॉर्म जैसा कुछ बनाना चाहते हैं। जाहिर है, आप अपनी वेब साइट पर किसी के रोजगार आवेदन को प्रकाशित नहीं करना चाहेंगे। इसके अलावा, क्या होगा अगर आप ग्राहक / लीड कॉन्टैक्ट्स की सूची बनाना चाहते हैं? क्या आप एक मौका लेना चाहेंगे कि यह जानकारी आपकी वेब साइट पर गलती से प्रकाशित हो सकती है? व्यक्तिगत रूप से, मैं नहीं करूंगा।
इसलिए, ऊपर चर्चा की गई इकाई प्रपत्र मॉड्यूल। यह आपको एक इकाई प्रकार बनाने की अनुमति देता है जो सामग्री के लिए डिज़ाइन नहीं किया गया है। हालाँकि, ये इकाई प्रकार किसी भी मॉड्यूल के लिए उपलब्ध हैं जो कि बस कुछ ही नाम रखने के लिए नियमों, विचारों और कार्बनिक समूह जैसी संस्थाओं का समर्थन करते हैं।
और फिर आप ड्रुपल कॉमर्स में पहुंच जाते हैं जहां उत्पाद इकाई प्रकार के होते हैं। मूल रूप से संस्थाएं डेवलपर्स को ड्रुपल का विस्तार करने में सक्षम बनाती हैं जो मूल ड्रुपल डिजाइनरों द्वारा कभी भी पूर्वाभास नहीं करती हैं।
यह चर्चा का विषय है और अंत में आपको एक डेवलपर के रूप में अपने निर्णय लेने होंगे।
जब भी डेटा सार्वजनिक रूप से अपने स्वयं के यूआरएल के साथ उपलब्ध नहीं होना चाहिए, मैं नोड्स पर इकाइयाँ चुनता हूँ। नोड्स डिफ़ॉल्ट रूप से एक url उपनाम, प्रकाशित स्थिति, एक शीर्षक, मेटा टैग, ... प्राप्त कर रहे हैं, जबकि संस्थाओं को डेटाबेस में केवल एक रिकॉर्ड मिलता है।
"मैं पाठ के साथ अधिक से अधिक बैनर जोड़ने में सक्षम होना चाहता हूं और फिर एक ब्लॉगपोस्ट में उनमें से एक के बीच चयन करना चाहता हूं"
इकाई बनाम सामग्री
Entity में Entity Bundles होते हैं जिनमें Fields होती हैं
सामग्री एक प्रकार की इकाई है। इसलिए,
कंटेंट में कंटेंट बंडल्स (आर्टिकल, पेज) है जिसमें फील्ड्स (बॉडी, आर्टिकल इमेज) है
यदि आप प्रोग्रामर हैं तो आप निश्चित रूप से अपनी खुद की एंटिटी बनाने का रास्ता चुनते हैं लेकिन साइटबिल्डर्स के लिए यह सबसे अच्छा रास्ता नहीं हो सकता है। साइट बिल्डरों के लिए फिर से Entity http://drupal.org/project/eck बनाने के लिए UI है