【发布时间】:2019-07-04 18:12:24
【问题描述】:
我目前正在编写一个博客来获得 php 的经验(我已经制作了一个 MVC 框架),所以我还是新手。
我有两张表对这个问题很重要:
user(id, username, password, registrated)
comments(id, content, post_id, comment_author, date, editedAt, editedBy)
在comments-table 中,comment_author 尚未链接到用户的 id,因为我不确定如何实际执行此操作。
一个用户可以写任意多的cmets,但是一个评论只能有一个作者。
comment_author 目前包含username,但我知道我需要id(如果用户被删除并且其他人会使用此用户名注册,则评论将是他的)。
我现在应该如何构建表格?
1.) comments_author_id in comments-table,id in user 作为外键:
在这种情况下,我会在comments-表中拥有评论作者的id,但user 不会知道他编写的cmets。如果我想在其个人资料上显示用户最近的 cmets,我可以通过 inner-join 查询获得它们吗?
2.) 新建表格user_comments(id, user_id, comment_id)
在这种情况下,user 和 comments 不会知道它的作者/cmets。
我还有“editedBy”,其中最后一个编辑用户的用户名是。我可以以某种方式将其与users-table 中的用户名链接,还是应该将其与id 链接?
我对这个问题真的很迷茫,因为我对数据库知之甚少;因此,我感谢我能得到的每一个帮助和建议。
如果我需要提供任何进一步的信息或更改某些内容以便更好地理解,请告诉我。
【问题讨论】:
-
如果评论只有一个作者选项 1 就足够了。
-
同意,我会去添加用户和评论之间的关系,将用户 ID 添加到评论中,一个简单的连接就足以获得用户的 cmets。
标签: php sql database phpmyadmin structure