2011-08-29 59 views
0

我一直在阅读关于分层数据库结构,并想知道如何将它应用到我当前的代码。目前,我正在查询所有帖子,然后在该查询的循环中,我对该帖子的所有评论做了另一个查询。因此每个帖子都有一个额外的查询;这对我来说似乎没有效率。我的表结构:查询帖子和评论全部在一个?

posts.id,posts.userid,posts.text

comments.id,comments.postid,comments.userid,comments.text

我看到一些帖子里的人提干所有这一切都在一个查询中,返回的查询使用sql的CONCAT()来添加空格来缩进注释。然后在appcode中,您将检查空格并相应显示。任何关于查询我的数据样式的想法?

回答

1

可以Concat的任何你喜欢的领域,但它会是混乱到Concat的的comments.text行

我通常做的就是把在同一个表的文章和评论: 帖(帖子ID,用户ID,文本,parent_postid)

你知道,如果它是一个职位时parent_postid == 0,你可以很容易地获取所有帖子/为相同的“邮报” 我觉得评论是在大多数系统中

+0

有趣的一个比较常见的方式。那么即使我有两张桌子,理论也是一样的。我可以只是加入评论表和CONCAT评论,所以我知道他们是在显示屏中的评论。 编辑:这不会给你太多的冗余数据(文章发布等)? – Ryan

+0

当您要加入时,您将从两个表中获取列 - 您将在所有行中获得所选帖子的数据 – galchen

+0

正确。但我想知道这种方式是否优于2个查询。无论如何,我认为在1个查询中执行该操作会更有效率 – Ryan