2010-03-18 11 views
5

एक सीखने के अभ्यास के रूप में मैं खुद को एक ब्लॉगिंग सिस्टम डालने की कोशिश कर रहा हूं।ब्लॉगिंग सिस्टम में डेटाबेस डिज़ाइन

लक्ष्य कुछ मेरे से अधिक ब्लॉग, blogger.com या wordpress.com, लेकिन बहुत सरल बनाया की तरह बनाने देगी कि कोड करने के लिए है।

मैं आपसे पूछना चाहता हूं, आपको इस प्रकार की स्क्रिप्ट के लिए सबसे अच्छा डेटाबेस डिज़ाइन क्या लगता है।

, एक बड़ी मेज के लिए उतना ही अच्छा है (FriendFeed) की तरह सभी उपयोगकर्ताओं के सभी ब्लॉग से पदों से युक्त या यह प्रत्येक ब्लॉग की पोस्ट के लिए अलग तालिका बनाने के लिए बेहतर होगा? आपकी मदद के, पीटर के लिए पहले से

बिग धन्यवाद।

उत्तर

3

आपका सबसे कुशल दृष्टिकोण उचित ढंग से सामान्यीकृत डेटाबेस (लेखकों, पोस्ट, टिप्पणियों के तालिकाओं) बनाने के लिए होगा और फिर जब आप समस्याओं के लिए डिज़ाइन के बजाय अपनी प्रदर्शन समस्याओं से निपटने के तरीकों की तलाश करेंगे सामने ... उन समस्याओं को कभी पूरा नहीं किया जा सकता है।

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

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

+0

+1 अच्छा जवाब! – amelvin

+1

इसके अलावा, कई तालिकाओं में विभाजित करने का अर्थ है कि आपको या तो फ्लाई पर एसक्यूएल उत्पन्न करना है, या जटिल डायनामिक उपनाम का उपयोग करना है जिसमें एक एप्लिकेशन है जो * एन * टेबल की समान प्रतियों का उपयोग करता है। यह एक संभावित सॉफ्टवेयर रखरखाव दुःस्वप्न है। यदि आप इसे गलत करते हैं (यानी गतिशील रूप से जेनरेट किए गए SQL के साथ) यह एक सुरक्षा दुःस्वप्न हो सकता है। –

1

यह एक अच्छा सवाल है (+1)।

scalability के संदर्भ में यह स्पष्ट है कि हर व्यक्ति से हर ब्लॉग के लिए एक मेज जब तक आप एक बहुत बड़ा बजट है उड़ान भरने के लिए नहीं जा रहा है है। हो सकता है कि फ्रेंडफिड एक मेज पर एक सर्वर फार्म को धक्का दे सके - लेकिन मुझे आपके शोध को पढ़ने में दिलचस्पी होगी।

आप केवल उन की एक छोटी संख्या उम्मीद कर रहे हैं तो डिजाइन पर ध्यान केंद्रित करने और scalability ध्यान नहीं देते हैं।

मुझे लगता है कि उत्तर इस बात पर निर्भर करता है कि आप अपनी परियोजना को कितना दूर करना चाहते हैं।

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