2009-04-21 10 views
6

लोग पुन: प्रयोज्य डेटाबेस कैसे बनाते हैं जिनका उपयोग कई उत्पादों के लिए किया जा सकता है?लोग पुनः उपयोग करने योग्य डेटाबेस कैसे बनाते हैं?

उदाहरण के लिए, यदि हमारे पास एक स्कूल के लिए डिज़ाइन किया गया डेटाबेस है ... क्या इसे आसानी से कॉलेज में दिया जा सकता है?

डेटाबेस बनाने का तरीका क्या है जिसे उत्पाद के रूप में उपयोग किया जा सकता है ताकि कई ग्राहकों को कोडिंग के साथ समाधान मिल सके?

धन्यवाद

उत्तर

0

इस तरह के एक आवेदन के लिए आवश्यकताओं के लिए एक काफी जटिल डेटा मॉडल की आवश्यकता होगी। विभिन्न प्रकार के स्कूलों की अलग-अलग आवश्यकताएं होंगी। एक विश्वविद्यालय आपको पाठ्यक्रम जोड़ने या छोड़ने दे सकता है, लेकिन एक प्राथमिक विद्यालय आमतौर पर नहीं करता है। एक विश्वविद्यालय को कमरे में पाठ्यक्रम निर्धारित करने की आवश्यकता होती है, जबकि एक प्राथमिक विद्यालय को छात्रों को ग्रेड और विभाजित ग्रेडों को उपलब्ध स्थान और शिक्षकों के आधार पर कक्षाओं में विभाजित करने की आवश्यकता होती है।

आपके डिज़ाइन को उन सभी आवश्यकताओं को ध्यान में रखना होगा जिन्हें हल करने की उम्मीद है और फिर उनको लागू करें। जितना अधिक सामान्य आप प्रोग्राम को कठिन बनाते हैं, यह आपके ग्राहकों को संतुष्ट करना है। सवाल कहता है "एक बार कोड लिखें"। यदि आप एक ऐसा प्रोग्राम लिखना चाहते हैं जो हर स्कूल की जरूरतों को हल करता है, तो उसे सैकड़ों फीचर्स की आवश्यकता होगी; कुछ मामलों में कुछ स्कूलों को किसी अन्य स्कूल से विपरीत सुविधा की आवश्यकता होगी; उदाहरण के लिए कुछ स्कूलों को प्रति विषय या कक्षा में एक शिक्षक को लागू करने की आवश्यकता होगी जबकि एक अन्य स्कूल को कई शिक्षकों की आवश्यकता हो सकती है। जितनी अधिक आवश्यकताएं आप पूरा करने की उम्मीद करते हैं, एप्लिकेशन जितना अधिक जटिल हो जाता है।

उद्योग में बड़े अनुप्रयोगों को लिखा जाना है ताकि उन्हें बढ़ाया जा सके; कार्यक्षमता का एक कोर सेट प्रदान किया जाता है लेकिन आवेदन को किसी विशेष ग्राहक के लिए बदला और अनुकूलित करना है। इससे विकास करना आसान हो जाता है क्योंकि आपको हर जरूरत की उम्मीद करने की आवश्यकता नहीं है; असल में आपको कई जरूरतों की पूर्ति करने की आवश्यकता नहीं होगी जब तक कि आपके पास उन जरूरतों के साथ ग्राहक न हो। लेकिन "अनुकूलन" के साथ आप केवल एक बार कोड नहीं लिख रहे हैं।

सबसे महत्वपूर्ण कदम डेटा मॉडल के साथ आना है जो बाद में विस्तार करने के लिए पर्याप्त लचीला है, लेकिन इतना लचीला नहीं है कि इसके लिए विकसित करना असंभव है। सबसे कठिन हिस्सा आम तौर पर रिश्तों की कार्डिनालिटी को सही तरीके से प्राप्त कर रहा है। उदाहरण के लिए, आप कह सकते हैं कि कक्षा में एक शिक्षक है। फिर जब यह पता चला कि कक्षा को दो शिक्षकों की आवश्यकता है, तो आपको बहुत सारे कोड को फिर से लिखना होगा और बहुत सारे डेटा को ठीक करना होगा। इस प्रकार के बदलाव कष्टप्रद और समय लेने वाली हैं। हालांकि, अंत में आप हमेशा पर्याप्त प्रोग्रामर समय दिए गए गलतियों को ठीक कर सकते हैं।

2

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

अनुभव के साथ, आप सामान्यीकृत और विशिष्ट के बीच एक परिपूर्ण संतुलन की सराहना करना शुरू कर देंगे। यह समझने योग्य और पुन: प्रयोज्य कोड/डेटाबेस डिज़ाइन की कुंजी है।

+0

यह सच हो सकता है, यदि एक ही डोमेन में आवेदन, उस मामले में, एप्लिकेशन प्रत्येक के लिए एक उत्पाद की तरह कार्य करता है ... –

0

सबसे अच्छा सलाह मैं दे सकते हैं सबसे कम आम विभाजक .... करने के लिए का निर्माण करना है

तो .... एक परियोजना शिक्षा सुविधाओं की दिशा में सक्षम :-)

0

खर्च समय सोच के रूप में यह कोड जिस डेटा को आप स्टोर करना चाहते हैं उसके बारे में, इसे विस्तारित करने के लिए इसे सारणित करें, और फिर तदनुसार अपना डेटाबेस बनाएं। मुझे नहीं पता कि क्या आप कोड से संभव तरीके से पुन: उपयोग कर सकते हैं, लेकिन आप डेटाबेस संरचना (जहां आपको अभी भी अलग-अलग घटकों को संशोधित करना है) का निर्माण कर सकते हैं, यदि आप आगे की योजना बनाते हैं तो पुन: प्रयोज्य है।

1

उत्तर abstraction के sweet spot को खोजने का उत्तर है।

+0

lol 'स्वीट स्पॉट' – mpen

+0

जोड़ने ईएसएल लोक जो अवधि के लिए मिल सकती है @ अजीब –

0

यह आपकी आवश्यकताओं पर निर्भर करता है। उदाहरण के लिए, उत्पाद आधारित व्यापार के लिए कई कई डेटाबेस किसी ऐसे स्वरूप में शामिल हैं का उपयोग करें:

  • एक ग्राहक तालिका
  • एक आदेश तालिका
  • एक उत्पादों की मेज, आदि

अपनी स्थिति आप हो सकता है में है

  • एक वर्ग तालिका
  • एक साथ छात्रों से ts तालिका
  • एक ग्रेड मेज, आदि

यह सामान्य तालिका प्रारूप कई अनुप्रयोगों में पुन: उपयोग किया जा सकता है।

0

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

पुन: प्रयोज्य स्थिति के लिए डिजाइन करने में महत्वपूर्ण व्यापारिक शामिल हैं; आमतौर पर वे समय और जटिलता शामिल करते हैं; अर्थात।, ऐसा कुछ भी डिजाइन करना आसान है जो पुन: प्रयोज्य नहीं है; और आमतौर पर, सामान्य डिजाइन करने और इसका उपयोग करने में शामिल अतिरिक्त समय प्रयास के लायक नहीं है।

0

अपने डेटाबेस डिज़ाइन में सामान्यता और विशिष्टता का सही संतुलन पाएं ताकि आपके द्वारा बनाए गए एप्लिकेशन को आपके लक्षित बाजारों में पर्याप्त समस्याएं मिलेंगी, जिन्हें वे सभी इसमें खरीद लेंगे।

3

आमतौर पर, जब लोग ऐसा करते हैं, तो उनके पास एक ही उद्योग में कई ग्राहक होते हैं। तो यदि आप एक ईकॉमर्स वेब डेवलपर हैं, तो आप बार-बार टेबल परिदृश्य के उसी उत्पाद, ऑर्डर, ऑर्डर विवरण प्रकार में भागने जा रहे हैं। जब ऐसा होता है, तो स्टार्टर डेटाबेस बनाने की हवा होती है।

+0

और आप इस मार्ग से जाने के लिए जा रहे हैं, आप भी कि आप ऐसा कर आप और अधिक आसानी से जा सकते हैं प्रत्येक नए संस्करण के बीच स्क्रिप्ट उन्नयन बनाए रखना चाहिए पीठ और अधिक ग्राहकों को उन्नत। –

0

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

यदि मेरे पास एक मौजूदा डेटाबेस है जो समान या टेम्पलेट है, तो मैं इसे डेटाबेस मॉडलिंग टूल का उपयोग करता हूं जैसे this इसे संशोधित करने के लिए और फिर वास्तविक डेटाबेस बनाने के लिए उत्पन्न SQL कार्यक्षमता (लोड/सेव के तहत) का उपयोग करें।

एक और चाल जिसे मैंने हाल ही में उठाया है जिसने मुझे बहुत समय बचाया है, एसक्यूएल को स्क्रिप्ट के रूप में डेटाबेस उत्पन्न करने के लिए उपयोग किया जाता है। यदि मैं एक नया डेटाबेस स्थापित करना चाहता हूं तो मैं स्रोत कोड में कोई संपादन करता हूं, और फिर पृष्ठ लोड करता हूं। उदाहरण के लिए, यदि मैं एक नई ग्राहक तालिका उत्पन्न करना चाहता हूं तो मैं http://localhost/load.php?generate=customer लोड करता हूं।

उम्मीद है कि यह मदद करता है!

1

चरण एक, संभावित ग्राहकों की एक बहुत विस्तृत विविधता से बात करें और उनकी ज़रूरतों को जानें, वे वर्तमान में क्या उपयोग कर रहे हैं और वे अपने वर्तमान उत्पाद की क्या इच्छा कर सकते हैं। इस पर 10 गुना खर्च करें क्योंकि आपको लगता है कि आपको अभी इसकी आवश्यकता है। कागज पर एक संभावित जीयूआई निकालें और जिन लोगों से आप साक्षात्कार करते हैं उन्हें चित्रों पर देखें और सुझाव दें। यदि संभव हो, तो इस चरण में सहायता के लिए उद्योग में कुछ लोगों को व्यवसाय विश्लेषकों के रूप में किराए पर लें। कानूनी आवश्यकताओं के बारे में पूछें। कुछ उद्योगों में बहुत से कानूनी जटिलताएं हैं और अन्य नहीं हैं। चिकित्सा दुनिया के किसी भी तरीके से संबंधित कुछ भी और आपको उदाहरण के लिए एचआईपीपीए आवश्यकताओं को पूरी तरह से समझने और समझने की आवश्यकता होगी।

डेटाबेस संरचना और एक जीयूआई डिज़ाइन करें तो कुछ असली उपयोगकर्ताओं को इसके साथ खेलने के लिए मिलता है। वे जो कहते हैं उसके आधार पर रिफैक्टर (यह आश्चर्यजनक है कि उपयोगकर्ताओं को आवश्यकताओं को पूरा करने में कितनी चीजें छोड़ती हैं जिन्हें वे वास्तविक जीयूआई का सामना करने तक नहीं सोचते)।

सभी संभावित ग्राहकों के माध्यम से क्या सामान्य होना चाहिए और जहां आपको अनुकूलन की आवश्यकता हो सकती है, इसके बारे में सोचें - आपके साक्षात्कार आपको यहां मार्गदर्शन कर सकते हैं। अनुकूलन को संभालने का तरीका तय करें। या यहां तक ​​कि अगर आप इसे अनुमति देंगे। यह उद्योग पर एक बड़ा सौदा कर सकता है और उनके अभ्यास कितने मानक हैं।

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

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

वेब मॉडल में, आप मॉड्यूल का एक समूह भी बना सकते हैं और क्लाइंट चुन सकते हैं और चुन सकते हैं कि उनके कस्टम समाधान में कौन सा जोड़ना है। वे अपने द्वारा चुने गए मॉड्यूल की संख्या और जटिलता के आधार पर भुगतान करेंगे। तो ग्राहक जो केवल तीन मानक रिपोर्ट चाहता है वह क्लाइंट से कम भुगतान करेगा जो सभी 27 चाहता है। जब कोई नया अनुकूलन सुझाया जाता है, तो ग्राहक विकास के लिए भुगतान करता है अगर सुझाव दूसरों पर असीम रूप से लागू नहीं होता है, लेकिन मॉड्यूल ऐसा किया जाता है ताकि अन्य इसे भी खरीद सकें। यदि अन्य इसे खरीदते हैं, तो मूल ग्राहक जो परिवर्तन के लिए कहा जाता है, तब तक धन का हिस्सा हो सकता है जब तक उनकी विकास लागत का भुगतान नहीं किया जाता। उन्हें यह भी आवश्यकता हो सकती है कि कुछ कस्टम मॉड्यूल के रूप में बने रहें और इस काम के लिए बहुत अधिक कीमत का भुगतान करें। हमारे पास कुछ ग्राहक हैं जो अन्य ग्राहकों के समान स्थान पर एक ही सर्वर पर अपना डेटा भी नहीं चाहते हैं। कहने की जरूरत नहीं है, हम ऐसा कुछ करने के लिए एक विशाल प्रीमियम चार्ज करते हैं।

अनुकूलन महंगा है और कई और प्रोग्रामर की आवश्यकता हो सकती है। अनुकूलन मार्ग जाने से पहले बहुत दृढ़ता से विचार करें। यह वास्तव में वह चीज हो सकती है जो आपके सॉफ़्टवेयर समाधान को बेचती है, लेकिन यह अच्छी तरह से स्केल नहीं करती है। जब आपके पास दस कटोमर होते हैं तो यह बुरा नहीं होता है, लेकिन जब आपके पास कुछ सौ होते हैं तो यह बहुत जल्दी नियंत्रण से बाहर हो सकता है। एक मानक सूट से बाद में अनुकूलन जोड़ने के बजाय, इसे पेश करने के बाद इसे अनुकूलन से पीछे हटना बहुत कठिन होता है। कॉर्पोरेट रिपोर्टिंग के संगठन में अक्सर अनुकूलन की आवश्यकता अधिक होती है। यदि आप एक रिपोर्टिंग इंटरफ़ेस बना सकते हैं जहां लोग चुन सकते हैं कि वे कौन सी जानकारी चाहते हैं और अपनी कस्टम रिपोर्ट सहेज सकते हैं, तो आप अपने उद्योग में पूर्ण-अनुकूल अनुकूलन की आवश्यकता के बिना अधिकांश अनुकूलन आवश्यकताओं को संभाल सकते हैं।

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

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