Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何设计博客系统的数据库?_Mysql_Sql_Database_Database Design_Rdbms - Fatal编程技术网

Mysql 如何设计博客系统的数据库?

Mysql 如何设计博客系统的数据库?,mysql,sql,database,database-design,rdbms,Mysql,Sql,Database,Database Design,Rdbms,我正在开发一个简单的博客应用程序,用户可以在其中写文章,其他人可以喜欢、评论、共享等。我在设计数据库时面临困难。 我尝试的是: user (user_id(pk), user_name) post (post_id(pk), post_content, likes, user_id(fk)) comment(comment_id(pk), comment, post_id(fk)) 问题:一个用户可以有许多帖子,许多用户可以喜欢和评论许多帖子。是否必须将两个表分开,如:user、post和

我正在开发一个简单的博客应用程序,用户可以在其中写文章,其他人可以喜欢、评论、共享等。我在设计数据库时面临困难。 我尝试的是:

user (user_id(pk), user_name)

post (post_id(pk), post_content, likes, user_id(fk))

comment(comment_id(pk), comment, post_id(fk))
问题:一个用户可以有许多帖子,许多用户可以喜欢和评论许多帖子。是否必须将两个表分开,如:
user
post
userpost


有人能告诉我这个设计是否有错误吗?

您的
注释
表缺少指示添加此注释的用户的字段

此外,最好将
帖子
评论
合并到一个表中,因为评论只是一种帖子。因此,您只需将被评论帖子的父id存储在记录中以供评论

对于喜欢的用户和帖子的多对多关系,
likes
应该在另一个表中

因此,您的表可以如下所示:

users (user_id(pk), user_name)

posts (post_id(pk), parent_post_id(fk), date, post_content, user_id(fk))

likes (like_id(pk), post_id(fk), user_id(fk))

您的
注释
表缺少指示添加此注释的用户的字段

此外,最好将
帖子
评论
合并到一个表中,因为评论只是一种帖子。因此,您只需将被评论帖子的父id存储在记录中以供评论

对于喜欢的用户和帖子的多对多关系,
likes
应该在另一个表中

因此,您的表可以如下所示:

users (user_id(pk), user_name)

posts (post_id(pk), parent_post_id(fk), date, post_content, user_id(fk))

likes (like_id(pk), post_id(fk), user_id(fk))

就像上面提到的人。最好在另一张表中列出评级

评级(评级id(pk)、用户id(fk)、帖子id)

类似上面的东西


像上面提到的人一样谢谢你。最好在另一张表中列出评级

评级(评级id(pk)、用户id(fk)、帖子id)

类似上面的东西


谢谢

嗨..谢谢..我只想数一数其他用户对该帖子的喜爱程度,并知道哪些用户喜欢该帖子(与facebook相同)…我是否需要另一个表。还不太清楚-表
post
中的
喜欢
字段在您的实现中。如果只是一些喜欢的人,那么你将无法确定到底是谁喜欢这个帖子。在我提出的实现中,“有多少喜欢的帖子”类似于(它是伪代码)
select count(like_id)from likes where post_id=…
,“谁喜欢帖子”是
select user_id from likes where post_id=…
。非常简单。嗨..谢谢..我只想数一数其他用户对该帖子的喜爱程度,并知道哪些用户喜欢该帖子(与facebook相同)…我是否需要另一个表。还不太清楚-表
post
中的
likes
字段在您的实现中。如果只是一些喜欢的人,那么你将无法确定到底是谁喜欢这个帖子。在我提出的实现中,“有多少喜欢的帖子”类似于(它是伪代码)
select count(like_id)from likes where post_id=…
,“谁喜欢帖子”是
select user_id from likes where post_id=…
。很简单。