2013-10-16 4 views
5

मैं सरल सोशल नेटवर्किंग साइट बनाने जा रहा हूं। तो ... मैं जानना चाहता हूं कि फेसबुक कैसे पोस्ट के लिए टिप्पणियां संग्रहीत करता है।टिप्पणियां और पोस्ट स्टोर करने के लिए फेसबुक की डेटाबेस संरचना?

फेसबुक स्टोर पोस्ट और इसकी डेटाबेस समान तालिका तालिका पंक्ति में है, फिर वे एक तालिका पंक्ति फ़ील्ड में टिप्पणियों की एक लंबी सूची कैसे संग्रहीत करते हैं। या क्या प्रत्येक पोस्ट के लिए प्रत्येक डेटाबेस तालिका है, ताकि उस तालिका पंक्ति में उस पोस्ट के लिए टिप्पणियां कर सकें।

सीएमएस जैसे साधारण सोशल नेटवर्क साइट के लिए सबसे अच्छी डेटाबेस संरचना क्या है। लेकिन यह उपयोगकर्ताओं की एक बड़ी मात्रा को संभाला जा सकता है।

कृपया इस मामले में मेरी मदद करें। धन्यवाद।

+1

"फेसबुक स्टोर पोस्ट और इसकी टिप्पणियां एक ही डेटाबेस तालिका पंक्ति में है" यह कभी नहीं होगा। उनके पास टिप्पणी और पोस्ट (मुझे लगता है) – Sri

+0

सलाह के लिए धन्यवाद के लिए तालिकाएं हैं। – Milan

उत्तर

5

आप क्या कर सकते हैं के छोटे उदाहरण:

टेबल उपयोगकर्ताओं:

users 
-------- 
id 
name 

टेबल टिप्पणी:

comments 
-------- 
id 
comment_text 
posted_by 
posted_to 
date_posted 

जब आईडी के साथ उपयोगकर्ता 783 के उपयोगकर्ता प्रोफ़ाइल के लिए एक टिप्पणी 342 पदों, आप टिप्पणी तो की तरह स्टोर कर सकते हैं:

INSERT INTO comments(comment_text, posted_by, posted_to) 
VALUES ('Hi!', 342, 783, '2013-10-16 11:17:00'); 

फिर, जब आप किसी उपयोगकर्ता की प्रोफ़ाइल पर दिखाने के लिए टिप्पणियां चुनते हैं, तो बस पोस्ट_बी और पोस्ट_टो कॉलम में शामिल हों उपयोगकर्ता तालिका में प्रासंगिक आईडी।

0

मुझे लगता है कि उनके पास सभी पोस्ट और पोस्ट_आईडी के साथ एक टेबल है। फिर उनके पास सभी टिप्पणियों के साथ एक और टेबल है। और comments_table में उनके पास post_id के साथ एक पंक्ति है ताकि वे इसे असाइन कर सकें।

तो,

हर पोस्ट स्थिति पाठ, उपयोगकर्ता का आईडी है जो इसे लिखा था के साथ एक post_id है आदि और हर टिप्पणी एक comment_id और बाद निर्दिष्ट करने के लिए एक post_id है।

यही वह अनुमान है जो मैं अनुमान लगा रहा हूं। हालांकि मैं आपको निश्चित रूप से नहीं बता सकता।

सरल उदाहरण अद्यतन

पदों की मेज

post_id | user_id | status_text | datetime 

टिप्पणी की मेज

comments_id | user_id | post_id | comments_text | datetime 
0

मैं टिप्पणी के लिए लगता है कि आप वीडियो गीत के लिए इस तालिका यह मेज thaty यह ट्रैक आईडी नाम

   CREATE TABLE `tbl_video_comments` (      
        `comment_id` int(11) NOT NULL AUTO_INCREMENT,   
        `user_name` varchar(20) DEFAULT NULL,     
        `track_id` int(11) NOT NULL,        
        `datetime` datetime NOT NULL,       
        `comment` varchar(100) NOT NULL,       
        PRIMARY KEY (`comment_id`)        
       ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1 
0

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

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