आप केवल एक तालिका का उपयोग कर सकते हैं, जिसमें एक अभिभावक फ़ील्ड शामिल है। यदि रिकॉर्ड का कोई मूल्य नहीं है, तो यह एक टिप्पणी है, अन्यथा यह एक उत्तर है (या तो कोई टिप्पणी या उत्तर)।
आप रिकॉर्ड के अभिभावक रिकॉर्ड (का निरीक्षण अभिभावक) से पूछ सकते हैं कि यह उत्तर किसी टिप्पणी या उत्तर के लिए है या नहीं।
संपादित करें: उपरोक्त एक काफी व्यावहारिक समाधान है। हालांकि, सामान्यीकृत संस्करण के साथ जाने के लिए, अभी भी एक टिप्पणियाँ तालिका (बिना किसी अभिभावक के) रखें, और एक उत्तर दें तालिका जिसमें एक टिप्पणी आईडी है, और एक ResponseID, दोनों टिप्पणियाँ तालिका में रिकॉर्ड्स की आईडी हैं।
इस विचार का उपयोग करना, निम्नलिखित एसक्यूएल टिप्पणियों और प्रत्येक जबाब एक टिप्पणी है कि के लिए प्रत्येक टिप्पणी के लिए 'जबाब' दिखाएगा:
select c.comment, r.comment as reply
from comment as c, comment as r, replyto as rt
where c.ID = rt.CommentID
and r.ID = rt.ReplyID
Dimitrii बताते रूप में, यह के साथ टिप्पणी प्रदर्शित नहीं करेगा कोई जवाब नहीं - इसके लिए आपको बाहरी जॉइन क्वेरी की आवश्यकता है (सिंटैक्स का परीक्षण नहीं किया गया है):
SELECT c.comment, r.comment as reply,
from Comment c
left outer join Comment r on c.id = r.id
left outer join replyto rt on rt.responseid = r.id
आप डिज़ाइन सामान्यीकृत हैं, तो आप इसके साथ आगे बढ़ सकते हैं। आपके पास एक उपयोगकर्ता आईडी होना चाहिए जो दोनों टेबलों में निर्माता की आईडी होगी। दूसरे उत्तर के लिए उत्तर दें एक तार्किक परिदृश्य है, इसका कार्यान्वयन ऐसा है जैसे आपके पास एक स्थिति है जिस पर लोग –
उपयोगकर्ता आईडी का जवाब देते हैं? संदर्भित 'उपयोगकर्ता' कहां है? – mcalex