2012-02-03 13 views
11

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

  1. मुझे ऐसी समस्या (शॉपिंग कार्ट एप्लिकेशन डीबी) से कैसे संपर्क करना चाहिए? मुझे कहां से शुरू करना चाहिए?
  2. क्या कोई आम गलती/नुकसान है जो मुझे टालना चाहिए?
  3. ऐसे डीबी को डिजाइन करते समय मुझे क्या अनुकूलन/दक्षता प्रतिमानों को ध्यान में रखना चाहिए?
  4. समस्या स्थान (उत्पादों, आदेश, आदि) में इकाइयों की पहचान करने के बारे में मुझे कैसे जाना चाहिए? मुझे उनके बीच संबंध कैसे प्राप्त करना चाहिए?
  5. जब कोई साक्षात्कारकर्ता ऐसा प्रश्न पूछता है, तो वह वास्तव में क्या देख रहा है? क्या मुझे कुछ कहना चाहिए/नहीं कहना चाहिए?

मैं भी स्पष्ट होना चाहिए कि -

  1. हाँ, मैं एक noob हूँ, और मेरे इरादों डेटाबेस डिजाइन जानने के लिए और आने वाली नौकरी साक्षात्कार के लिए तैयार करने के लिए कर रहे हैं। मैंने डीबीएमएस किताबें पढ़ी हैं जहां वे व्यक्तिगत अवधारणाओं का विस्तार से वर्णन करते हैं, लेकिन मुझे कोई संकेत नहीं है कि उन चीजों को एक साथ कैसे रखा जाए और डेटाबेस तैयार करना शुरू करें।
  2. मैंने डेटाबेस डिज़ाइन पर अन्य धागे देखे हैं। लेखकों को पहले से ही समस्या को तोड़ने के तरीके पर कुछ ज्ञान है। मैं ऐसा करने के पीछे की पद्धति को समझना चाहता हूं।
  3. बाहरी संसाधनों, टिप्पणियों, सुझावों और कुछ भी जो मुझे सही रास्ते पर रखेगा, के लिए लिंक बहुत सराहना की है। मुझे आशा है कि यह धागा खुद और दूसरों के लिए एक सीखने का अनुभव के रूप में कार्य करता है।
+1

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

उत्तर

14

डेटाबेस में पाँच टेबल नहीं हो सकता है।
इस तालिका के मूल क्षेत्र अभिभावक श्रेणी की आईडी स्टोर करता है।

उत्पाद इस स्टोर में आपके स्टोर के सभी उत्पाद संग्रहीत किए जाते हैं। इस तालिका में एक विदेशी कुंजी श्रेणी आईडी है जो उस श्रेणी की पहचान करता है जिस पर उत्पाद संबंधित है।

ORDER यह तालिका आपके स्टोर के आगंतुकों द्वारा किए गए सभी आदेशों के बारे में जानकारी संग्रहीत करती है।

ORDERED_SHOPPING_CART तालिका उत्पाद और ORDER तालिकाओं से कसकर जुड़ा हुआ है; ग्राहकों के आदेश सामग्री पर जानकारी स्टोर करता है।

SPECIAL_OFFER मेज उत्पाद, जो विशेष प्रस्तावों

+0

मैं इसकी वकालत नहीं कर रहा हूं लेकिन पाया कि यह आपकी समस्या को बेहतर ढंग से देखने में आपकी मदद कर सकता है और शॉपिंग कार्ट एप्लिकेशन की अधिकतम आवश्यकताओं को शामिल/कवर करता है। यहां तक ​​कि मैंने अभी तक किसी भी शॉपिंग डेटाबेस को आर्किटेक्चर नहीं किया है, इसलिए यह भी मेरे लिए ब्याज का सवाल है – Devjosh

+1

मेरे डिजाइन कौशल पर काम करना शुरू करने के लिए यह एक अच्छा मुद्दा है। आपको इंटरनेट +1 करें। –

+0

यह बहुत अच्छा है कि मुझे खुशी है कि इससे आपकी मदद मिली। सभी बेहतरीन – Devjosh

11

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

अपने आप से सवाल पूछें, उन्होंने ऐसा क्यों किया है? यह अच्छा क्यों है? क्या नकारात्मक हो सकता है? मैं इसे अलग तरीके से कैसे करूं? क्यूं कर?

मैं डेटाबेस डिज़ाइन टूल खरीदने की कोशिश करता हूं जो आपको डेटाबेस को देखने की अनुमति देता है। (दृश्य स्टूडियो में डेटाबेस डिजाइनर की तरह या मेरे पास माइक्रोऑलाप से एक है जो pgsql डेटाबेस करता है)

फिर आपको डेटाबेस में जो चाहिए उसे लेकर सोचना चाहिए। ग्राहक क्या करने जा रहा है? उत्पाद खरीदें! इसलिए आपको एक उत्पाद तालिका की आवश्यकता है। पूरे मार्ग पर जाने के बिना आप बिंदु देख सकते हैं। कल्पना कीजिए कि क्या आवश्यक है, फिर मूल रूप से इसके लिए एक टेबल बनाएं।

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

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

index correctly पर जानें।

डेटाबेस तब तक न बनाएं जब तक आपके पास यह ठोस विचार न हो कि यह कैसे काम करेगा। यह बाद में इसे पुनर्जीवित करने में समय बचाता है।

हालांकि इसके लिए और भी कुछ हो सकता है, मुझे उम्मीद है कि मैंने आपको अच्छी शुरुआत की है।

श्रेणी अपनी दुकान और श्रेणियों पदानुक्रम के उत्पादों श्रेणियों के बारे में इस तालिका जानकारी संग्रहित:

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