我将创建简单的社交网站。所以...我想知道 Facebook 如何存储帖子的评论。
是 Facebook 将帖子及其评论存储在同一数据库表行中,然后他们如何将一长串评论存储在一个表行字段中。还是每个帖子都有每个数据库表,以便可以在该表行中对该帖子发表评论。
对于像 CMS 这样的简单社交网站来说,最好的数据库结构是什么。但它可以处理大量用户。
请在这件事上帮助我。谢谢。
我将创建简单的社交网站。所以...我想知道 Facebook 如何存储帖子的评论。
是 Facebook 将帖子及其评论存储在同一数据库表行中,然后他们如何将一长串评论存储在一个表行字段中。还是每个帖子都有每个数据库表,以便可以在该表行中对该帖子发表评论。
对于像 CMS 这样的简单社交网站来说,最好的数据库结构是什么。但它可以处理大量用户。
请在这件事上帮助我。谢谢。
你可以做什么的小例子:
表用户:
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');
然后,当您选择要在用户个人资料上显示的评论时,只需将posted_by 和posted_to 列与用户表中的相关ID 连接起来。
我猜他们有一张包含所有帖子和 post_id 的表格。然后他们有另一个包含所有评论的表格。在comments_table 中,他们有一行带有post_id,因此他们可以分配它。
所以,
每个 Post 都有一个带有状态文本的 post_id、写它的用户的 id 等,每个评论都有一个 comment_id 和一个 post_id 来将其分配给帖子。
这就是我的猜测。不过我不能肯定地告诉你。
简单示例 更新
帖子表
post_id | user_id | status_text | datetime
评论表
comments_id | user_id | post_id | comments_text | datetime
我想发表评论,你试试这个表,它是视频歌曲的表,它收集了一个带有轨道 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
你现在需要的只是关系和三个表。只需将用户 ID 作为主键保留在用户表中,并在您创建的每个表中将其设为外键。这将帮助您根据用户 ID 获取所有内容。