हां, एक उपसर्ग जोड़ना जो ऑब्जेक्ट के प्रकार को दर्शाता है एक समस्या है, और अनावश्यक है । चूंकि,
- कभी-कभी वस्तुएं जीवन को कुछ के रूप में शुरू करती हैं लेकिन अंत में कुछ और बन जाती हैं । (उदाहरण के लिए तालिका
tblXxx
में विभाजित किया गया tblXxxY
और tblXxxZ
किसी कारण से और प्रतिस्थापित एक राय यह है कि दो नए टेबल मिलती है। अब आप एक दृश्य कहा जाता है tblXxx
)।
- जब आप
tbl
संपादक में टाइप करते हैं, तो इसका AutoComplete फीचर 45 सेकंड के लिए हैंग हो जाता है और फिर आपको 4000 प्रविष्टियों की सूची दिखाता है।
परंतु...
मैं शैतान के वकील की भूमिका निभाने जा रहा हूं और कहता हूं कि कुछ लोगों ने इसके खिलाफ सलाह दी है। कुछ दुर्लभ मामले हैं जो एक प्रत्यय / उपसर्ग उपयोगी हो सकते हैं, और यहां उस संगठन का एक उदाहरण है जिसके लिए मैं काम करता हूं।
हमारे पास ईआरपी सिस्टम आधारित एक इकाई है, जहां व्यापार तर्क ओरेकल पीएल / एसक्यूएल में लिखा गया है। यह लगभग दो दशक पुराना है, फिर भी एक बहुत ही स्थिर प्रणाली है (यह एक विरासत प्रणाली नहीं है। हम इसे लगातार विकसित कर रहे हैं)।
सिस्टम इकाई आधारित है, और प्रत्येक इकाई एक तालिका, कई विचार, कई पीएल / एसक्यूएल पैकेज और अन्य डेटाबेस ऑब्जेक्ट्स के एक मेजबान को जोड़ती है।
अब, हम चाहते हैं कि समान इकाई से संबंधित वस्तुएं समान नाम की हों, लेकिन फिर भी इसका उद्देश्य और प्रकार भिन्न हो। इसलिए, यदि हमारे पास दो संस्थाएँ हैं, जिनका नाम है CustomerOrder
और CustomerInvoice
, हमारे पास निम्नलिखित वस्तुएँ होंगी:
- डेटा [
TAB
प्रत्यय] संग्रहीत करने के लिए टेबल्स :
CUSTOMER_ORDER_TAB
CUSTOMER_INVOICE_TAB
।
- ग्राहकों द्वारा उपयोग किए जाने वाले दृश्य [कोई प्रत्यय]:
CUSTOMER_ORDER
CUSTOMER_INVOICE
।
- बुनियादी संचालन के लिए इंटरफ़ेस; (पीएल / एसक्यूएल पैकेज) [
API
प्रत्यय]:
CUSTOMER_ORDER_API
CUSTOMER_INVOICE_API
।
- रिपोर्ट जनरेटर; (पीएल / एसक्यूएल पैकेज) [
RPI
प्रत्यय]:
CUSTOMER_ORDER_RPI
CUSTOMER_INVOICE_RPI
।
- प्राथमिक कुंजी के लिए सूचकांक [
PK
प्रत्यय]:
CUSTOMER_ORDER_PK
CUSTOMER_INVOICE_PK
।
- द्वितीयक सूचकांक [
IX
प्रत्यय]:
CUSTOMER_ORDER_XXX_IX
CUSTOMER_INVOICE_XXX_IX
(जहां XXX
सूचकांक के उपयोग का वर्णन करता है)।
- ... और इसी तरह।
यह वास्तव में Apps हंगेरियन का एक रूप है (ध्यान दें कि एक ही प्रकार की वस्तुओं में उद्देश्य के आधार पर अलग-अलग प्रत्यय हो सकते हैं)। लेकिन, उपसर्ग के बजाय एक प्रत्यय के साथ। मैं आपको पर्याप्त नहीं बता सकता कि यह प्रणाली पढ़ना कितना आसान है। IntelliSense वास्तव में काम करता है क्योंकि TBL
4000 परिणाम टाइप करने और प्राप्त करने के बजाय , मैं Customer
नामित संस्थाओं से संबंधित सभी ऑब्जेक्ट टाइप और प्राप्त कर सकता हूं Customer*
।
इसलिए, यहां मैंने आपको दिखाया है कि मेटाडेटा कैसे उपयोगी हो सकता है। इसका उद्देश्य किसी एक नाम से पहचानी जाने वाली डेटाबेस ऑब्जेक्ट का संबंधित सेट है, फिर भी उन्हें उनके उद्देश्य के आधार पर अलग-अलग करना है ।
यह कहने के बाद कि, यदि आपके पास इस प्रकार की प्रणाली नहीं है, तो वस्तु के प्रकार का प्रत्यय या प्रत्यय लगाने का कोई फायदा नहीं है ।
ध्यान दें कि हम जैसे प्रत्यय उपयोग नहीं किया है _table
, _package
या _view
(यानी प्रकार वस्तु का)। उदाहरण के लिए, दोनों (3) और (4) पीएल / एसक्यूएल पैकेज हैं, फिर भी एक अलग प्रत्यय का उपयोग करें। यह (5) और (6) के लिए समान है, दोनों ही इंडेक्स हैं। इसलिए प्रत्यय प्रकार के बजाय उद्देश्य पर आधारित है ।
Class
?