Database
 sql >> डेटाबेस >  >> RDS >> Database

उपयोगकर्ताओं, थ्रेड्स और पोस्ट को प्रबंधित करने के लिए बुनियादी डेटा संरचना की मॉडलिंग

एक ऑनलाइन चर्चा मंच एक ऐसी साइट है जहां लोग बातचीत कर सकते हैं पोस्ट किए गए संदेशों . के रूप में . चर्चा फ़ोरम बातचीत को तब होने देते हैं जब लोग ऑनलाइन नहीं होते हैं, और संदेशों को अस्थायी रूप से संग्रहीत किया जा सकता है। साथ ही, फ़ोरम सेट-अप के आधार पर, किसी संदेश को अन्य उपयोगकर्ताओं के लिए दृश्यमान होने से पहले एक मॉडरेटर द्वारा अनुमोदित करने की आवश्यकता हो सकती है। फ़ोरम में शर्तों का एक विशिष्ट सेट होता है, उदाहरण के लिए, एक एकल वार्तालाप को आम तौर पर "थ्रेड" कहा जाता है। थ्रेड्स का उत्तर जितने लोग देना चाहें, दे सकते हैं। अधिकांश फ़ोरम में उपयोगकर्ताओं को पंजीकरण करने और बाद में संदेश पोस्ट करने के लिए लॉग इन करने की आवश्यकता होती है। हालांकि, अधिकांश मंचों पर, उपयोगकर्ताओं को मौजूदा संदेशों को पढ़ने के लिए लॉग इन करने की आवश्यकता नहीं होती है।

वेबसाइट फ़ोरम . के लिए ये सामान्य आवश्यकताएं हैं , तो चलिए एक बुनियादी फ़ोरम सेटअप से शुरू होने वाला डेटाबेस मॉडल बनाने के लिए काम करते हैं जिसे हम बाद में बढ़ा सकते हैं।

इकाई

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

ऑनलाइन फ़ोरम के लिए, उपयोगकर्ताओं को बनाने की आवश्यकता होगी - उपयोगकर्ताओं को उनके विवरण बनाने के बाद उन्हें संपादित करने की अनुमति देना आवश्यक हो सकता है, लेकिन संभवतः उपयोगकर्ताओं को हटाने की अनुमति देने की कोई आवश्यकता नहीं है। उपयोगकर्ता स्पष्ट रूप से वार्तालाप बनाने के बजाय, आम तौर पर फ़ोरम पर पहला संदेश पोस्ट करके वार्तालाप या थ्रेड बनाएंगे, लेकिन दोनों संभावनाओं का समर्थन करना आवश्यक हो सकता है। थ्रेड में ऐसे पोस्ट होंगे जो उपयोगकर्ताओं द्वारा बनाए गए हैं।

कार्यक्षमता

संदेशों को पोस्ट करना ऑनलाइन फ़ोरम की मुख्य कार्यक्षमता है . क्या उपयोगकर्ताओं को पोस्ट किए जाने के बाद संदेशों को संपादित करने में सक्षम होना चाहिए? क्या उपयोगकर्ताओं को पोस्ट करने के बाद संदेशों को हटाने में सक्षम होना चाहिए? दोनों का जवाब शायद हां है।

रिश्ते

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

अब जबकि आप संस्थाओं . को जानते हैं और रिश्ते , आप डेटाबेस का एक मॉडल बनाने के लिए तैयार हैं, और इसमें केवल कुछ मिनट लगने चाहिए। यह वह जगह है जहाँ उपकरण काम में आते हैं।

डेटाबेस मॉडल

आइए ऑनलाइन चर्चा मंच को जारी रखने के लिए वर्टाबेलो पर एक नज़र डालें।

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

अब, आपके पास कुछ ऐसा होगा जो मोटे तौर पर ऐसा दिखाई देगा:




आप देखेंगे कि प्रत्येक पंक्ति के निर्माण की तारीख/समय के साथ टाइमस्टैम्प हैं, ताकि वह जानकारी फ़ोरम पर प्रदर्शित हो सके ("फरवरी 2, 2014 से उपयोगकर्ता", "पोस्ट करने की तिथि:24 दिसंबर, 2014", आदि। )।

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

मुझे आशा है कि आप पहले से ही सुधारों के बारे में सोचना शुरू कर सकते हैं। उदाहरण के लिए, यदि आपको एकल "नाम" फ़ील्ड के बजाय उपयोगकर्ता के बारे में औपचारिक विवरण की आवश्यकता है, तो आप उनका पहला नाम, अंतिम नाम और उपयोगकर्ता नाम या उपनाम चाह सकते हैं। और एक पोस्ट में सामग्री के अलावा एक विषय भी हो सकता है, लेकिन मुझे लगता है कि पोस्ट का विषय वापस थ्रेड से जुड़ा हुआ है, इसलिए यह आवश्यक नहीं हो सकता है।

  अगला भाग »

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रेडशिफ्ट में मूविंग एवरेज की गणना कैसे करें

  2. TimescaleDB के लिए बैकअप प्रबंधन युक्तियाँ

  3. झुंड क्लस्टर के साथ Azure कंटेनर सेवा पर डॉकर का उपयोग करना

  4. डेटाबेस में सामग्री के बिल (बीओएम) संरचना की पहचान करना

  5. टेबलस्पेस SYSMGMTDATA ग्रिड इंफ्रास्ट्रक्चर मैनेजमेंट रिपोजिटरी (MGMTDB) में भरा हुआ है