首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在“用户”和“他的评论”之间建立关系?

如何在“用户”和“他的评论”之间建立关系?
EN

Stack Overflow用户
提问于 2019-02-11 09:26:02
回答 2查看 388关注 0票数 1

我目前正在编写一个博客,以获得使用php的经验(我已经制作了一个MVC-Framework),所以我对此仍然很陌生。

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

user(id, username, password, registrated)

comments(id, content, post_id, comment_author, date, editedAt, editedBy)

comments中,-table comment_author还没有链接到用户的id,因为我不确定如何实际这样做。

用户可以编写任意数量的评论,但评论只能有一个作者。

comment_author目前有username,但我知道我需要id(如果用户被删除,其他人会用这个用户名注册,评论将是他的)。

我现在该如何安排桌子呢?

) comments_author_id in comments**-table,** id in user as外键:

在这种情况下,我会让评论作者的idcomments-table中,但是user不会知道他所写的评论。如果我想显示用户最近在它的配置文件上的评论,那么我可以通过inner-join查询获得它们吗?

( 2.)创建一个新的表user_comments(id, user_id, comment_id)

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

此外,我还有“editedBy”,其中最后一个编辑用户的用户名是。我可以以某种方式将它与users-table中的用户名链接起来吗?还是也应该将它与id链接起来?

我对这个问题真的很困惑,因为我对数据库不太了解,所以我很感激能得到的每一个帮助和建议。

如果我需要提供更多的信息,或者为了更好的理解而改变一些东西,请让我知道。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-11 09:35:08

第一种选择是合理的。

正如您所说的,评论只有一个作者,所以只需使用一个外键对用户表。

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

票数 1
EN

Stack Overflow用户

发布于 2019-02-11 09:33:19

最好的方法是创建一个新的表user_comments(id, user_id, comment_id)。如果您想跟踪每个更改/编辑注释或帖子,如果您为此创建另一个表,如果用户只能编辑,我认为最好是editedBy字段,而不是生成。结构完全取决于你想成为什么样的追踪者。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54627360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档