Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.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
Php 如何在';用户';和';他的评论是什么;?_Php_Sql_Database_Phpmyadmin_Structure - Fatal编程技术网

Php 如何在';用户';和';他的评论是什么;?

Php 如何在';用户';和';他的评论是什么;?,php,sql,database,phpmyadmin,structure,Php,Sql,Database,Phpmyadmin,Structure,我目前正在编写一个博客,以获得使用php的经验(我制作了一个MVC框架),所以我对这方面还是新手 对于这个问题,我有两张重要的表格: 用户(id、用户名、密码、注册) 评论(id、内容、帖子id、评论作者、日期、编辑日期、编辑人) 在comments-表comment\u中,作者尚未链接到用户id,因为我不确定如何实际执行此操作 一个用户可以写任意多的评论,但是一个评论只能有一个作者 comment\u作者目前有用户名,但我知道我需要id(如果用户被删除,其他人将使用此用户名注册,则评论将是他的

我目前正在编写一个博客,以获得使用php的经验(我制作了一个MVC框架),所以我对这方面还是新手

对于这个问题,我有两张重要的表格:

用户(id、用户名、密码、注册)

评论(id、内容、帖子id、评论作者、日期、编辑日期、编辑人)

comments
-表
comment\u中,作者
尚未链接到用户id,因为我不确定如何实际执行此操作

一个用户可以写任意多的评论,但是一个评论只能有一个作者

comment\u作者
目前有
用户名
,但我知道我需要
id
(如果用户被删除,其他人将使用此用户名注册,则评论将是他的)

我现在应该如何构造表

1.
comments\u author\u id
comments
-表中,
id
用户
中作为外键:

在这种情况下,我将在
comments
-表中拥有注释作者的
id
,但是
用户
不知道他写的注释。如果我想在它的个人资料上显示用户最近的评论,那么我可以通过
内部连接
查询获得它们吗

2.)创建一个新表
user\u comments(id,user\u id,comment\u id)

在这种情况下,
user
comments
不会知道它的作者/评论

此外,我还有“editedBy”,其中最后一个编辑用户的用户名为。我是否可以将其与
用户
-表中的用户名链接,或者是否还应将其与
id
链接

我真的被这个问题弄糊涂了,因为我对数据库了解不多;所以我很感激能得到的每一个帮助和建议


如果我需要提供任何进一步的信息或更改某些内容以便更好地理解,请告诉我。

最好的方法是创建一个新表
user\u comments(id,user\u id,comment\u id)
。如果你想跟踪每一个更改/编辑的评论或帖子,最好是为其创建另一个表,如果用户只能编辑,那么我认为最好不要生成
editedBy
字段。结构完全取决于你想要什么样的跟踪

选择第一个选项是有道理的

正如您所说的,注释只有一个作者,所以只需使用foreignkey到user表


在第二个选项中,您将为不需要新表的数据创建一个新表,以便存储不需要的数据。此外,您还必须在两个不同的表中写入注释,这是添加注释的两种不同操作,它没有提供您可以使用的额外功能。

如果注释只有一个作者,则选项1就足够了。同意,我会在用户和注释之间添加关系,将UserID添加到评论和一个简单的连接就足以获得用户的评论。首先谢谢。如果我想对帖子做同样的处理,我还必须创建一个表
用户帖子(id,user\u id,post\u id)
,对吗?帖子只有一个作者。您可以将
user\u id
与您的
posts表一起使用,无需创建另一个表,因为一篇文章只有一位作者,可能会被许多其他人编辑。这就是为什么如果您跟踪编辑过的人会更好,那么您可以为
editPosts
创建一个表。您可以使用
user\u id
在您的posts表未重新编译的情况下创建另一个posts表谢谢,那么我如何处理“editedBy”?我想它也应该与id/用户名链接,我能不能也与Miceandmoon的
用户
-id]链接?是的,如果你不需要任何额外的数据,比如旧的编辑或。。。