मैं लिख रहा हूं कि इंट्रानेट एप्लिकेशन क्या होगा, और इसकी एक विशेषता सामग्री वोटिंग के लगभग समान है - एसओ, अमेज़ॅन और कई अन्य साइटों के विपरीत नहीं।डेटाबेस में "वोट" संग्रहीत
सामग्री के प्रत्येक votable टुकड़ा मान लिया जाये कि एक अद्वितीय ID है, और प्रत्येक उपयोगकर्ता (वे प्रमाणीकृत कर रहे हैं) की अनन्य आईडी है, सबसे आसान तरीका है एक "वोट" तालिका के लिए होने लगते हैं ...
ContentID int
UserID int
VoteValue int
लेकिन यह प्रति पंक्ति एक पंक्ति बनाता है - सामग्री के लाखों टुकड़ों और हजारों उपयोगकर्ताओं के साथ, यह तालिका बहुत बड़ी विशाल होगी। क्या यह करने का सबसे अच्छा तरीका है? मेरा मतलब है, एक पूर्णांक 4 बाइट लेता है, प्रत्येक पंक्ति 12 बाइट्स लेता है। सामग्री की एक लाख टुकड़े एक सौ वोट मिलता है, कि 400MB + भंडारण में, हाँ है? लगता है ... बहुत पसंद है :)। यहां तक कि अगर VoteValue एक tinyint (जो शायद ठीक है) और केवल 1 बाइट है, जो अभी भी तालिका में कुछ सौ मेगाबाइट है। मेरा मतलब शीश है।
क्या कोई शानदार तरीका है? मैं एक अलग डेटाबेस (संभावित डेटा अखंडता मुद्दों की अनदेखी कर) भंडारण और प्रदर्शन के मामले में "मुख्य" डेटा से यह विभाजन में इस "वोट" तालिका की दुकान चाहिए?
(मुझे लगता है कि आज की दुनिया 400MB में एक टन नहीं है -, लेकिन की तरह एक बहुत सिर्फ वोट स्टोर करने के लिए ऐसा लगता है, हाँ)