在从多个表中提取数据的mysql查询时遇到一些麻烦...逻辑问题

时间:2011-03-28 16:45:28

标签: php mysql join normalization

我试着保持这个简单和重点。基本上我有一个新闻提要和一个评论部分。评论部分有两个层次:响应然后回复答复。对于给定的新闻帖子,基本上结构如此:

 -> comment

 ---> reply

 ---> reply

每条评论都可以有多个回复。显然,执行此操作的错误方法是对每个注释执行SQL查询以检查回复并将其列出。 编辑评论只有1层回复,即回复无法回复。 - 谢谢JohnP

我对此类查询的疑问:

我应该在单独的表中保留注释和回复并使用JOIN,还是可以将回复和注释保留在同一个表中并使用限定符来分隔类型?

我应该尝试使用查询对它们进行排序,还是将所有数据拉入数组并进行排序和排序。那样显示?

我的表目前如下:

ID (unique, auto increment)
NEWS_ID (ties the comment to a particular news post)
REPLY_ID (ties the comment to a parent comment if it is a reply to another comment)
USER_ID
BODY
PUBLISHED_DATE

我们将非常感谢那些比我更聪明的人的建议!我还处于完全理解JOINS和其他更高级别的mysql查询结构的最初阶段。 (IE:我吮吸mysql,但我正在学习:)。

1 个答案:

答案 0 :(得分:0)

既然你说答复是一层深的..

我会发表评论1表,并有一个comment_id字段来表示所有权,并有一个news_id字段来添加与新闻项的关系。这样,您只需查询与news_id匹配的所有评论,并按comment_id对其进行排序。然后一点点PHP数组魔术将为您提供一个排序的评论/回复列表。

所以看看你当前的表,你就是正确的道路。