2012-09-10 8 views
8

मैं अपनी मौजूदा LAMP साइटों में से एक पर एक बहुत ही सरल ब्लॉग सुविधा जोड़ना चाहता हूं। यह किसी उपयोगकर्ता की मौजूदा प्रोफ़ाइल से जुड़ा होगा, और वे अपने ब्लॉग में प्रत्येक पोस्ट के लिए केवल एक शीर्षक और एक बॉडी इनपुट करने में सक्षम होंगे, और तारीख स्वचालित रूप से सबमिशन पर सेट हो जाएगी। उन्हें किसी भी समय ब्लॉग पोस्ट और शीर्षक को संपादित और हटाने की अनुमति होगी। यह ब्लॉग सबसे हालिया से सबसे पुराना, शायद 20 पदों को एक पृष्ठ पर प्रदर्शित किया जाएगा, इसके ऊपर उचित अंकन के साथ। अन्य उपयोगकर्ता प्रत्येक पोस्ट पर टिप्पणियां छोड़ने में सक्षम होंगे, जिसे ब्लॉग स्वामी को हटाने की अनुमति होगी, लेकिन पूर्व-मध्यम नहीं। यह मूल रूप से यह है। जैसे मैंने कहा, बहुत सरल।MySQL में एक बहुत ही साधारण ब्लॉग की सारणी कैसे व्यवस्थित करें?

मुझे इसके लिए MySQL तालिकाओं को कैसे व्यवस्थित करना चाहिए?

मुझे लगता है कि ब्लॉग पोस्ट और टिप्पणियां होने के बाद, मुझे प्रत्येक के लिए एक अलग टेबल की आवश्यकता होगी, क्या यह सही है? लेकिन फिर मुझे प्रत्येक तालिका में किन कॉलम की आवश्यकता होगी, मुझे किस डेटा संरचना का उपयोग करना चाहिए, और मुझे दो तालिकाओं को एक साथ कैसे जोड़ना चाहिए (उदा। कोई विदेशी कुंजी)?

मुझे ऐसा कुछ करने के लिए कोई ट्यूटोरियल नहीं मिला, और जो मैं करना चाहता हूं वह वास्तव में मेरे उपयोगकर्ताओं को एक ब्लॉग का सबसे सरल संस्करण प्रदान करता है। कोई टैग नहीं, कोई मॉडरेशन नहीं, कोई छवि नहीं, कोई फैंसी स्वरूपण इत्यादि नहीं। बस एक साधारण डायरी-प्रकार, शुद्ध-पाठ ब्लॉग अन्य उपयोगकर्ताओं द्वारा टिप्पणी के साथ।

+0

होमवर्क ऐसा लगता है कि अपने विचारों से अवगत करने की कोशिश की और अब तक लागू कर दिया है? – djadmin

+3

@djadmin: स्टैक ओवरफ़्लो पर मेरा इतिहास देखें। मैं निश्चित रूप से कोई छात्र नहीं हूँ। मैंने अभी तक कुछ भी लागू करने की कोशिश नहीं की है क्योंकि यह एक उत्पादन स्थल के लिए है। मैं लाइव साइटों पर "परीक्षण और त्रुटि" नहीं करता हूं, मैं पहले कुछ लागू करने का सबसे अच्छा तरीका समझता हूं, और फिर मैं इसे लागू करता हूं। यही वह है जिसे मैं समझने की कोशिश कर रहा हूं। – ProgrammerGirl

+0

देखें कि कोई भी मौजूदा ब्लॉगिंग इंजन यह कैसे करता है। देखने के लिए बहुत सारे उदाहरण हैं। – ceejayoz

उत्तर

19

मैं कहेंगे आप निम्न तालिकाओं की जरूरत

Posts 
    PostID (identity) 
    PostTitle (varchar) 
    PostDate (datetime) 
    Deleted (int) 
    OwnerID (int FK to Users) 

PostDetails 
    PostDetailID (identity) 
    PostID (FK to Posts) 
    Sequence (int) -> for long posts you order by this 
    PostText (text) 

Comments 
    CommentID (identity) 
    Comment (text) 
    CommenterID (int FK to Users) 
    CommentDate (datetime) 
    Deleted (int) 

Users 
    UserID (identity) 
    UserNAme (varchar) 
    UserEmail (varchar) 
    CreatedDate (datetime) 
    Active (int) 

वर्तमान समय में सभी datetime क्षेत्रों डिफ़ॉल्ट, सभी पहचान फ़ील्ड पी हैं पोस्ट के विवरण में अनुक्रम क्षेत्र मामला आप उपयोग नहीं करते में होती है टेक्स्ट प्रकार और वर्कर के साथ जाएं ताकि आप कई रिकॉर्डों पर एक पोस्ट को विभाजित कर सकें।

इसके अलावा, मैं किसी भी ओपन सोर्स ब्लॉगिंग सिस्टम को देखता हूं और देखता हूं कि उन्होंने क्या किया और मुझे जो चाहिए उसे घटाएं।

आशा है कि मदद करता है

+0

दिलचस्प, धन्यवाद। क्या आप कृपया बता सकते हैं कि आपने "पोस्ट" टेबल के साथ अपने कॉलम को जोड़ने के बजाय अलग "पोस्ट डिस्प्ले" टेबल बनाने का सुझाव क्यों दिया? – ProgrammerGirl

+1

दो कारण: पहला मास्टर/विस्तार संबंध बनाने के लिए डेटा को डीकॉप्लिंग कर रहा है (इस तरह से जब आप केवल शीर्षक चाहते हैं तो आपको शायद अपनी लंबी पोस्ट लाने की आवश्यकता नहीं है), और दूसरा यह तथ्य है कि आप समाप्त कर सकते हैं क्षेत्र की क्षमता से परे जा रहा है (शायद टेक्स्ट फ़ील्ड के साथ कोई समस्या नहीं है, लेकिन यदि आप वर्चर के साथ जाते हैं, जो मैं करता हूं, तो इसका मतलब है कि आपके पास प्रति पंक्ति एक निश्चित अधिकतम लंबाई है)। सब कुछ सिर्फ वरीयता का मामला है, जितना संभव हो सके जानकारी को अलग करना पसंद करते हैं –

+0

क्या आप अपने उत्तर में पोस्ट विवरण तालिका में उपयोग किए गए अनुक्रम (int) कॉलम के उपयोग की व्याख्या कर सकते हैं? अनुक्रम कॉलम के लिए क्या उपयोग किया जाता है? – bobble14988

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