2013-02-10 23 views
7

मुझे यह वर्णन करने के लिए कहा गया है कि इस डेटा संरचना के साथ क्या गलत है, और मैं इसे कैसे सुधारूंगा।इस डेटा संरचना में क्या गड़बड़ है?

यहाँ डेटा संरचना है:

  • कार कीमत केवल सेट किया गया है कार शोरूम में है अगर, यह होगा:

    Image

    यहाँ मैं अब तक किया है कार टेबल

  • कार की कीमत में कार की कीमत डालने के लिए और अधिक समझदारी है, यह कार टेबल में नल डेटा स्टोर करने का कोई मतलब नहीं है, यह शर्त होगी Ter एक लेआउट इस के समान है:

    Car table

  • वहाँ की जरूरत है एक मात्रा दिखाने के लिए कैसे है कि विशेष कार के कई शोरूम में हैं के रूप में कुछ शोरूम ही कारों की कई है शीर्षक हो करने के लिए

नई तालिका मैं बनाई अभी भी डेटा है, जो मैं थोड़ा एक नहीं नहीं है जब एक डेटा संरचना ड्राइंग है याद है, और इसलिए मुझे लगता है कि मैं एक 3 सूची बनानी होती है दोहरा गया है? मैं वास्तव में यकीन नहीं कर रहा हूँ ..

मैं सिर्फ क्या वर्तमान डेटा संरचना के साथ कुछ गलत है के रूप में मदद का एक सा की जरूरत है और अगर वहाँ इसे सुधारने के लिए किसी भी तरह से है, किसी भी मदद की सराहना की है।

+0

एफडब्ल्यूआईडब्ल्यू, आपका मतलब है 'डेटाबेस स्कीमा' नहीं 'डेटा संरचना' – Patashu

+0

@ पट्टाशू: स्कीमा सिर्फ नाम-दूरी है - वस्तुओं का संग्रह। संरचना यह है कि सवाल क्या है। –

+0

हमने उन्हें डेटा संरचनाओं के रूप में सीखा है, लेकिन हाँ यह एक डाटाबेस स्कीमा है – user2058186

उत्तर

8

एक समस्या यह है कि कार तालिका भंडार दो अलग-अलग बातें है।

तो आपको लगता है कि अलग हो जाना चाहिए, कुछ की तरह:

बनाता है: कॉलम makename, makecode

मॉडल: कॉलम makecode (बनाता है के लिए विदेशी कुंजी), modelname, modelcode

और अब शोरूम तालिका केवल मॉडल से संबंधित होगा, इसलिए यह गलती से एक मेक का संदर्भ नहीं दे सकता है।

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

+0

उत्तर के लिए बहुत बहुत धन्यवाद, मैं आपके द्वारा सुझाए गए 3 टेबल के साथ जाने जा रहा हूं :) – user2058186

2

आप सही हैं कि दोहराव डेटा verboten है।

मैं "शोरूम" बदलने क्योंकि वहाँ मॉडलों के विभिन्न उपश्रेणियों हो सकता है "मॉडल" होगा। आईटी गोल्फ टीडीआई बनाम जीटीआई और ऐसे। ... और आधार मूल्य (एमएसआरपी) मॉडल पर लागू होगा। कमरे की स्थिति दिखाएं मूल्य निर्धारण के लिए समझ में नहीं आता है - विज्ञापन के बहुत सारे हैं लेकिन शोरूम में या बहुत कुछ नहीं।

मैं वहाँ एक व्यर्थ स्तम्भ होने के साथ किसी भी मुद्दे है, अगर है कि क्या डेटा का समर्थन करता है नहीं लगता। या तो ठीक है, और जब आप एक अच्छी मात्रा में डेटा देखते हैं तो यह देखने के लिए कि आप सबसे अच्छी सेवा करते हैं, तो आप बेंचमार्क कर सकते हैं। लेकिन पहले, पहले नहीं अनुकूलित करें। यह बनाता है संग्रहीत करता है, और यह मॉडल संग्रहीत करती है -

+0

उत्तर के लिए बहुत बहुत धन्यवाद :) – user2058186

4

ऐसा लगता है कि कार संरचना दोनों कार बनाने और कार मॉडल स्टोर करता है। कम से कम कुछ अलार्म जा रहे हैं। कार फोर्ड, वीडब्ल्यू और प्यूजोट की तरह बनाती है MakeCode। फिएस्टा और गोल्फ जैसे कार मॉडल का अपना ModelCode है।

मूल संरचना में, कार के मॉडल ParentCarId और के माध्यम से अपने मेकअप का उल्लेख नकल उनके MakeCode। कार बनाता है विशिष्ट मॉडल नहीं हैं और उनके ModelCode और ParentCarId के लिए नल असाइन किए जाते हैं।

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

उस तालिका को दो में विभाजित करने का अर्थ होगा: एक बनाने के लिए और मॉडल के लिए एक। एक ID, Name और MakeCode होगा। मॉडल में ID, Name, ModelCode और MakeId (के ID की एक विदेशी कुंजी) होगी।

+0

उत्तर के लिए बहुत बहुत धन्यवाद, मैं कोशिश करने जा रहा हूं :) – user2058186

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