डेटाबेस डिज़ाइन प्रश्न - mysql, डेटाबेस, डेटाबेस-डिज़ाइन

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

View Count
Thumbs Up (count)
Thumbs Down (Count)

which will be used on %90 of the queries when the तालिका एक्सेस की गई है। तो, मेरा सवाल यह है कि क्या टेबल को तोड़ना और नई टेबल बनाना बेहतर है, जिसमें ये 3 कॉलम + फॉरेन आईडी होंगे, या इसे केवल 13 कॉलम बनाने के लिए और कोई जॉइन नहीं करने के लिए?

चूंकि ये कॉलम अक्सर उपयोग किए जाएंगे, मैंलगता है कि 3 और कॉलम जोड़ना बेहतर है, लेकिन अगर मुझे 10 और कॉलम बनाने की आवश्यकता है, जो कि समय के 90% उपयोग किए जाएंगे, तो क्या मुझे उन्हें भी जोड़ना चाहिए, या एक नई तालिका बनाना चाहिए और जॉइन का उपयोग करना चाहिए?

यदि टेबल बहुत बार उपयोग की जाती है तो मुझे यकीन नहीं है कि टेबल को कब तोड़ना है। क्या तुम्हारे पास कोई सुझाव है?

अग्रिम में धन्यवाद,

उत्तर:

जवाब के लिए 5 № 1

चूंकि यह इतनी अधिक संख्या में उपयोग के मामलों (90%) और फ़ील्ड केवल संख्याएँ (पाठ नहीं) हैं, तो मैं निश्चित रूप से केवल मौजूदा तालिका में फ़ील्ड जोड़ने के लिए इच्छुक हूँ।

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


जवाब के लिए 2 № 2

अंतरिक्ष इन दिनों कोई बड़ी बात नहीं है - मैं कहता हूं कि एक टेबल पर कॉलम जोड़ने का निर्णय आधारित होना चाहिए "स्तंभ सीधे तालिका से संबंधित हैं", नहीं "कितनी बार कॉलम का उपयोग किया जाएगा"

तो मूल रूप से, हाँ, उन्हें तालिका में जोड़ें। मुख्यधारा डेटाबेस डिजाइन पर आगे के विचारों के लिए, देखें 3NF


उत्तर № 3 के लिए 1

उपयोग की आवृत्ति आपके टेबल लेआउट के लिए कोई चिंता का विषय नहीं होनी चाहिए, कम से कम तब तक नहीं जब तक कि आप विशाल तालिकाओं (पंक्तियों या स्तंभों की संख्या) से शुरू न करें

सवाल का जवाब है: क्या यह अतिरिक्त कॉलम के साथ सामान्यीकृत है। Google इसे, इसके बारे में बहुत सारे संसाधन हैं (हालांकि अलग-अलग गुणवत्ता के साथ)


उत्तर के लिए 1 № 4

कुछ पहले के पोस्टर।95% समय, आपको अपने टेबल को तार्किक संस्थाओं के आधार पर डिज़ाइन करना चाहिए। यदि आपके पास 13 डेटा तत्व हैं जो सभी एक ही "चीज़" का वर्णन करते हैं, तो वे सभी एक ही तालिका में हैं। डॉन "टी उन्हें कई तालिकाओं के आधार पर तोड़ता है कि आप कितनी बार उन्हें इस्तेमाल किए जाने की उम्मीद करते हैं या एक साथ उपयोग किए जाते हैं। यह आमतौर पर हल की तुलना में अधिक समस्याएं पैदा करता है।

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

In my experience, the only time breaking up a प्रदर्शन कारणों के लिए तालिका में कोई मूल्य नहीं दिखाया गया है जब कुछ दुर्लभ, बहुत बड़े पाठ फ़ील्ड हैं। जब वहाँ एक "विविध अतिरिक्त टिप्पणियाँ" फ़ील्ड या "उपन्यास का पाठ जिसे यह ग्राहक लिख रहा है"।


जवाब के लिए 0 № 5

मेरी सलाह सिडो के समान है: 13 कॉलम के साथ जाएं।

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


जवाब के लिए 0 № 6

देखने की कोशिश करो डेटाबेस सामान्यीकरणn डेटाबेस संरचनाओं की योजना बनाने के लिए कुछ स्पष्ट रूप से उल्लिखित दिशानिर्देशों के लिए।


संबंधित सवाल
सबसे लोकप्रिय