首页 新闻 会员 周边 捐助

MYSQL数据库设计,一篇文章如何对应多个评论?

1
悬赏园豆:200 [已解决问题] 解决于 2016-04-22 00:33

小弟菜鸟都算不上,求各位技术大牛指教一二!

一篇文章如何对应多个评论?

本人的想法是设计两张表,文章一个,评论一个。

评论表作为文章表的从表,当网页显示的时候,一篇文章对应多个评论,在数据库中的状态是文章表的一行对应了评论表的多行,那么,是否是将该页的评论都对应一篇文章的id,也就是说,在评论表中,有一个字段是文章的id,而评论表也有自己的id,如果这种设计是可行的,那么如何将文章表的id放入评论表,数据库应该如何操作?

不知道有没有表达清楚,各位大牛如果看到了此题不清楚可以问,我会立刻回复!

不胜感激!

问题补充:

本人刚刚想了另外一种解决方法。

评论提交后存取文章的id,在显示评论的时候,用if语句判断,是这个页面的id才输出评论。不知道这样那可不可行,我先去试试看,另外,网站是php+mysql。

4/22 补充:

感谢I,robot,objnet,幻天芒,小超人1,贫民窟大侠,我是一道光,回答了问题

刘宏玺和飞翔的金雕来水经验的,我就不感谢了 - -,

I,ROBOT是第一个回答问题的,对我帮助很大,大家陆续的回答也很有帮助,满意答案只能有一个,所以给帮助最大的,谢谢大家.

负得流油彼得潘的主页 负得流油彼得潘 | 初学一级 | 园豆:22
提问于:2016-04-20 21:11
< >
分享
最佳答案
0

前面说的两个表,是正确的,后面说的如果将文章表ID放入评论表没明白是什么意思,一般做法是把文章的ID用hidden控件放在提交评论的表单里,后台收到表单数据后一起写到数据库里就可以了。

至于取文章的评论,你怎么会想到用if判断?难道你不知道查询可以用where条件吗?

取一篇文章的评价直接加一个查询条件whrer 文章id = xxx就可以了啊

收获园豆:140
I,Robot | 大侠五级 |园豆:9783 | 2016-04-20 22:21

就是用提交的表单来关联两张表吗,但是在数据库里面,怎么知道评论对应的是哪篇文章呢?

负得流油彼得潘 | 园豆:22 (初学一级) | 2016-04-20 23:05

如果就我问题里讲的,评论表中有一个字段是文章表的id,那评论表应该如何做?

因为我百度过主键和外键的问题,但还是一知半解,按照一些方法做了,评论表里还是没能看到文章表的id字段。如果可以的话,先向你讨教这个问题吧。

一并谢过

负得流油彼得潘 | 园豆:22 (初学一级) | 2016-04-20 23:12

我想我可能搞清楚答主的意思了,但还是求证一下吧,这么晚答主应该睡了,明天我再回来看。

负得流油彼得潘 | 园豆:22 (初学一级) | 2016-04-21 00:11

@苏杭见桥: 对的,评论表里加一个文章id的字段就可以了。

I,Robot | 园豆:9783 (大侠五级) | 2016-04-21 12:08

@苏杭见桥: 

是不是这样的:
两张表是没有内在联系的,但是评论表里除了评论本身的id之外,再添加一个文章id字段,并没有所谓的主键外键的事(就是一个普通的文章id字段),hidden控件将文章的id写入到这个文章id字段,然后显示评论的时候就用WHERE条件。

就是这样的

I,Robot | 园豆:9783 (大侠五级) | 2016-04-21 12:09
其他回答(7)
0

楼主自己都想到了,就是评论表里面关联文章表的id就行,取数据的时候吧评论表里面的文章id跟文章表的id匹配的取出来就行,最好加上个评论的时间做个排序。

收获园豆:10
objnet | 园豆:156 (初学一级) | 2016-04-21 00:25

嗯,我尝试做一下,看看效果

支持(0) 反对(0) 负得流油彼得潘 | 园豆:22 (初学一级) | 2016-04-21 00:56
0

主从表设计。文章表为主表,评论表为从表(存储有文章表的文章id)。要展示的时候,查询两次,首先根据文章id查文章表,然后根据文章id查询该文章的所有评论。

 

至于如何拿到文章id。你在提交评论的时候,带上文章id就行了。

收获园豆:10
幻天芒 | 园豆:37205 (高人七级) | 2016-04-21 08:40
0

你不是说文章表示从表吗,那就在文章表上存储评论表的集合啊,这样的话可以直接通过文章表查询出来所对应的评论啊。

收获园豆:10
墨瞋 | 园豆:477 (菜鸟二级) | 2016-04-21 09:09
0

评论表里关联一个'外键'文章ID即可,每次评论的时候顺带存上你的文章ID,分两个表是比较可行的,其实你自己意识到了,这样在管理员对评论管理的时候比较好操作,像类似一些什么审核,删除什么的,都很方便。至于显示的时候,1楼已经给出了具体示意了,你直接根据文章ID在评论表里取得所有文章ID为你文章的答案集合,输出就行。

收获园豆:20
大楚打码人 | 园豆:4313 (老鸟四级) | 2016-04-21 09:44
0

评论表里设置一列为文章的id,并关联文章表的主键id,作为外键,这样不管对文章和评论的所以操作用该列关联两表就行了。

收获园豆:10
小光 | 园豆:1766 (小虾三级) | 2016-04-21 09:49
0

我看楼主应该清楚如何实现了,我是来骗豆的!

楼主如果有问题就补充,我好赚点豆!

刘宏玺 | 园豆:14020 (专家六级) | 2016-04-21 11:17
0

楼上都答完了,我进来加加人气,顺便赚点豆!!

飞翔の金雕 | 园豆:364 (菜鸟二级) | 2016-04-21 17:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册