Facebook的数据库结构存储评论和帖子? [关闭]

问题描述 投票:7回答:4

我打算创建一个简单的社交网站。所以...我想知道Facebook如何存储帖子评论。

Facebook商店帖子及其评论在同一个数据库表行中,然后它们如何在一个表行字段中存储一长串注释。或者是每个帖子都有每个数据库表,以便可以在该表行中对该帖子进行评论。

CMS这样的简单社交网站的最佳数据库结构是什么。但它可以处理大量用户。

请帮我解决这个问题。谢谢。

javascript php mysql facebook social-networking
4个回答
8
投票

你可以做的小例子:

表用户:

users
--------
id
name

表评论:

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

当ID为342的用户向用户783的个人资料发布评论时,您可以存储评论,如下所示:

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

然后,当您选择要在用户的个人资料中显示的评论时,只需将uploaded_by和posted_to列与users表中的相关ID一起加入即可。


0
投票

我猜他们有一张包含所有帖子和post_id的表格。然后他们有另一张包含所有评论的表。在comments_table中,他们有一行post_id,所以他们可以分配它。

所以,

每个Post都有一个post_id,其中包含状态文本,编写它的用户的ID等等,每个评论都有一个comment_id和一个post_id,用于将其分配给帖子。

这就是我猜的。我不能肯定地告诉你。

简单示例UPDATE

职位表

post_id | user_id | status_text | datetime

意见表

comments_id | user_id | post_id | comments_text | datetime

0
投票

我想评论你试试这个表它的视频歌曲表,它收集一个轨道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
投票

你需要的只是现在的关系和三个表。只需将userid作为主键保存在用户表中,并使其在您创建的每个表中都是外来的。这将帮助您根据用户ID获取所有内容。

© www.soinside.com 2019 - 2024. All rights reserved.