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

टिप्पणियों और उत्तरों के लिए डेटाबेस डिजाइन

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

आप रिकॉर्ड के पेरेंटआईडी रिकॉर्ड को क्वेरी कर सकते हैं (निरीक्षण करें यह है माता-पिता) यह देखने के लिए कि क्या यह उत्तर किसी टिप्पणी या उत्तर के लिए है।

संपादित करें :उपरोक्त एक काफी व्यावहारिक समाधान है। हालांकि, एक सामान्यीकृत संस्करण के साथ जाने के लिए, अभी भी एक टिप्पणियाँ तालिका (बिना माता-पिता के) रखें, और एक उत्तर तालिका बनाएं जिसमें एक टिप्पणी आईडी और एक प्रतिक्रिया आईडी है, जो दोनों टिप्पणियाँ तालिका में रिकॉर्ड की आईडी हैं।

इस विचार का उपयोग करते हुए, निम्नलिखित एसक्यूएल प्रत्येक टिप्पणी के लिए टिप्पणियों और प्रत्येक टिप्पणी के लिए 'उत्तर' दिखाएगा जिसमें एक टिप्पणी है:

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

जैसा कि दिमित्री बताते हैं, यह बिना किसी उत्तर के टिप्पणियों को प्रदर्शित नहीं करेगा - इसके लिए आपको एक बाहरी सम्मिलित क्वेरी की आवश्यकता है (सिंटैक्स का परीक्षण नहीं किया):

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



  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. दो टाइमस्टैम्प के बीच MYSQL क्वेरी

  3. MySQL में संख्यात्मक मानों के लिए TOP X (या निचला) प्रतिशत चुनें

  4. EF कोर - तालिका '*.__EFMigrationsHistory' मौजूद नहीं है

  5. Apache 2.2, MySQL 5.0 और PHP 5 के साथ FreeBSD 6.0 में वेब सर्वर स्थापित करना - भाग 3