2009-03-12 10 views
8

मेरे पास SO, Wordpress, आदि जैसी साइट है, जहां आप एक पोस्ट करते हैं और आप इसके खिलाफ (वैकल्पिक) टैग प्राप्त कर सकते हैं।टैग के लिए एक डेटाबेस स्कीमा (उदाहरण के लिए। प्रत्येक पोस्ट में कुछ वैकल्पिक टैग हैं)

इसे संभालने के लिए एक सामान्य डेटाबेस स्कीमा क्या है? मुझे लगता है कि यह कई < -> तीन संरचनाओं के साथ कई संरचना है।

किसी के पास कोई विचार है?

+0

इससे कोई फर्क क्यों पड़ता है कि यह कैसे लागू करता है। बेहतर एक नया प्रश्न खोलें जो एसओ विशिष्ट नहीं है (यदि आप सोच रहे हैं कि एसओ कैसे कार्यान्वित कर रहा है तो जेफ एक ईमेल भेजें) –

+0

सच है, मैं इसे अपने प्रश्न शीर्षक को ठीक करने के लिए ठीक कर दूंगा। यह मुख्य रूप से एक उदाहरण के रूप में, किसी भी चीज़ से अधिक था। –

उत्तर

9

कई संरचनाओं में से एक तीन टेबल ठीक होना चाहिए।

ईजी। Posts, PostsToTags(post_id,tag_id), Tags

कुंजी अनुक्रमणित है। सुनिश्चित करें कि आप PostsToTags तालिका दोनों तरीकों (post_id,tag_id और tag_id,post_id) अनुक्रमणित है भी अगर पढ़ प्रदर्शन अति महत्वपूर्ण आप एक अनुक्रमित दृश्य को पेश कर सकता है (आप दे सकते हैं जो POST_NAME, TAG_NAME)

निश्चित रूप से पोस्ट और टैग पर अनुक्रमित की जरूरत है आप करेंगे भी।

+0

मैं सोच रहा था कि क्या मैं सही रास्ते पर था और ऐसा लगता है :) –

0

मुझे पूरा यकीन नहीं है कि यह SO उपयोग करता है या नहीं। लेकिन एक अच्छी चर्चा here है।

1

"मुझे लगता है कि यह कई < -> तीन संरचनाओं के साथ कई संरचनाएं हैं। किसी के पास कोई विचार है?"

इस बिंदु पर, कोई गंभीर विकल्प नहीं हैं, क्या वहां हैं? कई से अधिक रिश्तों में दो रिलेशनल टेबलों को कम से कम एक एसोसिएशन टेबल की आवश्यकता होती है ताकि वे विदेशी कुंजी के सभी संयोजनों को ले सकें।

क्या ऐसा करता है? कौन जाने। उनके डेटा मॉडल में संदर्भ संख्याएं शामिल हैं, और - सभी जानते हैं - डेट टाइम टिकटें और मूल निर्माता और टैग के बारे में बहुत सारे जंक।

न्यूनतम, तीन टेबल होना चाहिए।

एसओ पर वे क्या करते हैं, यह जानना मुश्किल है।

0

यह देखना अच्छा होगा कि वर्डप्रेस पदों के लिए टैग कैसे संभालता है और यह आपको कुछ विचार देगा।

+0

वर्डप्रेस तीन लोगों के साथ कई लोगों को विश्वास करता है जो मुझे विश्वास है। –

-1

पाठ्यक्रम की दूसरी संभावना यह है कि केवल दो टेबल हैं।

यह देखते हुए कि अधिकतम 5 टैग हैं, एक टैग टेबल के लिए पांच नलबल विदेशी-कुंजी संदर्भों वाला प्रश्न तालिका एक संभावना है।

बहुत सामान्य नहीं है, लेकिन यह अधिक प्रदर्शनकारी हो सकता है।

+0

संभावना नहीं है कि यह अधिक प्रदर्शनशील होगा। जब आप एकाधिक टैग की तलाश में होते हैं तो यह बेहद जटिल प्रश्न प्रस्तुत करता है। –

+0

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

+0

@ sambo99 - उस मामले और अच्छे बिंदु में सच नहीं है। किसी विशेष टैग के लिए प्रश्न ढूंढना चूसना होगा। – Damovisa

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