2012-08-28 18 views
6

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

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

*Post* 
    id 
    title 
    content 
    image 
    audio 
    parent_id 

या,

*Post*      *Comments* 
id        id 
title       title 
content      content 
image       author_id 
audio       post_id 
author_id      image 
           audio 

क्या दूसरा विकल्प की अनुमति होगी अनुक्रमित पैदा कर रही है। असल में मुझे author_id या post_id भी जोड़ना पड़ेगा यदि मैं शुरुआत से इंडेक्स का उपयोग करता हूं तो क्या मैं?

इस एसओ पर आप क्या विचार कर रहे हैं? कौन सा अधिक कुशल होगा? मैं इसके लिए redbeanphp का उपयोग करने के बारे में सोच रहा हूँ।

उत्तर

2

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

0

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

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