2013-10-16 23 views
5

Mam zamiar stworzyć prostą witrynę społecznościową. więc ... Chcę wiedzieć, jak Facebook zapisuje komentarze do postów.Struktura bazy danych Facebooka do przechowywania komentarzy i postów?

to sklep Facebook Posty i komentarze w tym samym wierszu tabeli bazy danych, , a następnie sposób przechowywania długiej listy komentarzy w jednym polu wiersza tabeli. lub czy ma ona każdą tabelę bazy danych dla każdego posta, dzięki czemu może tworzyć komentarze do tego posta w tym wierszu tabeli.

Jaka jest najlepsza struktura bazy danych dla prostej witryny sieci społecznościowej, takiej jak CMS. , ale może obsłużyć dużą liczbę użytkowników.

Proszę mi pomóc w tej sprawie. Dzięki.

+1

"to facebookowy sklep Posty i komentarze w tym samym wierszu tabeli danych" to się nigdy nie stanie. mają obfite tabele za komentarze i post (myślę) – Sri

+0

dzięki za radę. – Milan

Odpowiedz

5

mały przykład tego, co można zrobić:

Tabela użytkowników:

users 
-------- 
id 
name 

Tabela komentarze:

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

Kiedy użytkownik o identyfikatorze 342 postów komentarz do Użytkownik 783 profil, można przechowywać komentarz tak:

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

Następnie, wybierając komentarze do wyświetlenia w profilu użytkownika, po prostu dołącz do kolumn posted_by i posted_to odpowiednie identyfikatory w tabeli użytkowników.

0

Sądzę, że mają stół ze wszystkimi wpisami i post_id. Następnie mają inny stół z wszystkimi komentarzami. I w comment_table mają wiersz z post_id, więc mogą go przypisać.

Więc

każdy post ma post_id z tekstem statusu, ID użytkownika, który go napisał itp i każdy komentarz ma comment_id i post_id aby przypisać go do słupka.

Zgaduję. Nie mogę ci jednak powiedzieć na pewno.

Prosty przykład UPDATE

posty-table

post_id | user_id | status_text | datetime 

komentarze-table

comments_id | user_id | post_id | comments_text | datetime 
0

myślę o komentarz spróbować tej tabeli go tabela piosenki wideo thaty zbierać kolumnę z nazwą utworu id

   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

Wszystko, czego potrzebujesz to relaeation i trzy stół do teraz. Po prostu zachowaj identyfikator użytkownika jako klucz podstawowy w tabeli użytkownika i uczyń go obcym w każdej tworzonej tabeli. To pomoże ci uzyskać wszystko na podstawie identyfikatora użytkownika.