मैं अपनी चिंता पर कुछ राय की सराहना करता हूं।डाटाबेस डिजाइन प्रश्न
मैं बुनियादी सामान आप उम्मीद थी, उपयोगकर्ता नाम, पासवर्ड, आदि जैसे के साथ अपने डेटाबेस में एक [उपयोगकर्ता] तालिका है, ...
यह आवेदन है कि मैं प्रत्येक के लिए विशेषताओं की एक विशाल संख्या पर नज़र रखने की आवश्यकता है उपयोगकर्ता। इतना तो, कि मैं संभवतः कॉलम (पंक्ति भंडारण स्थान) से बाहर हो जाऊंगा।
मैं UserID, PropertyKey और PropertyValue कॉलम के साथ UserProperties तालिका जोड़ने का लुत्फ उठा रहा हूं। यह दृष्टिकोण आवश्यकताओं के साथ अच्छी तरह से फिट बैठता है।
मेरी चिंता यह है कि यदि प्रत्येक उपयोगकर्ता में 100 गुण होते हैं, जब डेटाबेस में दस लाख उपयोगकर्ता होते हैं, तो हमारे पास 100,000,000 संपत्ति पंक्तियां होंगी।
मुझे लगता है कि होता है कि UserID पर संकुल अनुक्रमणिका के साथ, कि पहुंच अभी भी तेजी से चिल्ला हो जाएगा, और तुम सच में के रूप में आप मेगा कॉलम दृष्टिकोण के साथ होगा डेटा की समान राशि के बारे में भंडारण कर रहे हैं।
प्रदर्शन चिंताओं पर कोई विचार या विचार? एक बेहतर डीबी डिजाइन के लिए विचार?
धन्यवाद!
अद्यतन:
सबसे पहले, धन्यवाद सभी महान प्रतिक्रिया के लिए बहुत बहुत!
मैं संभावनाओं के साथ चारों ओर घूम रहा हूं, और एक चीज मुझे परेशान करती रहती है। मुझे इन विशेषताओं में से कुछ पर अक्सर पूछताछ की आवश्यकता है, और इससे भी बदतर, इन प्रश्नों में उन सभी उपयोगकर्ताओं को ढूंढना शामिल हो सकता है जो एक ही समय में इनमें से 10 गुणों पर मानदंड से मेल खाते हैं।
नतीजतन, मैं अब मेगा-कॉलम दृष्टिकोण की तरफ झुका रहा हूं, लेकिन संभावित रूप से डेटा को एक (या अधिक) अलग-अलग तालिकाओं में विभाजित कर रहा हूं, जो उपयोगकर्ता आईडी पर एक-से-एक संबंध बना रहा है।
मैं लिंककॉक्ल का उपयोग कर रहा हूं, और मुझे लगता है कि इस कॉलम के साथ तालिकाओं में सुरुचिपूर्ण हैं, मुझे लगता है कि सभी चुनौतियों और व्यापार-बंदों पर विचार करना, शायद यह सही है, लेकिन मैं अभी भी अन्य राय सुनने के लिए उत्सुक हूं।
के लिए किसी भी प्रदर्शन समस्याओं का ख्याल रखना चाहिए, मैं और अधिक सहमत नहीं हो सका। एक बार जब आप इसे संभालेंगे तो एंटीटी-रिलेशनल मॉडल शक्तिशाली है। मैं उस गरीब व्यक्ति के लिए महसूस करता हूं जो नाम/मूल्य जोड़े में फंस गई इकाइयों के साथ डेटाबेस प्राप्त करता है और उसे सिर या पूंछ बनाना पड़ता है। –