西西河

主题:【求助】实现送花功能的SQL语法求助,回复者花 -- 卷心菜

共:💬23 🌺28
分页树展主题 · 全看首页 上页
/ 2
下页 末页
        • 家园 这倒是,能借鉴当然借鉴

          论坛程序算是web程序当中复杂程度很高的了,现在开源的东西也多,没必要自己动手发明轮子了,说到这儿尤其佩服铁手了。给他的回复献朵花去。。。

      • 家园 顶一下!

        和您想法差不多。

        建立post表,记录除帖子内容外的所有主帖属性,在LIST的时候比较方便

        建立post_content表,记录帖子内容,有字段 post_id作为外键和post表建立关系,

        建立comment表,记录回帖内容及回帖属性,有post_id作为外键和post表建立关系

        PS:其实这还和你想将主帖与跟帖如何定位有关。如果跟帖只是从属于主帖,不会有让跟帖单独展示的需求,那跟帖单独建表是OK的。如果跟帖的地位比较高,可以与主帖等同(像河里),那可以考虑跟帖主帖用同一张表。

        河友轻点拍砖~

    • 家园 你没给出表结构,那一大段描述很难看

      这可能是你想要的结果,做个多表查询

      select ibf_topics.*,ipf_posts.rep_inc,ipf_posts.rep_dec

      from

      ibf_topics,ipf_posts

      where

      ibf_topics.forum_id=ipf_posts.forum_id

      或者

      select ibf_topics.forum_id,sum(ipf_posts.rep_inc),sum(ipf_posts.rep_dec)

      from

      ibf_topics,ipf_posts

      where

      ibf_topics.forum_id=ipf_posts.forum_id

      group by ibf_topics.forum_id

      • 家园 表结构

        ibf_topics

        点看全图

        外链图片需谨慎,可能会被源头改

        ibf_posts

        点看全图

        外链图片需谨慎,可能会被源头改

        其实我想做的就是在

        SELECT * from ibf_topics WHERE forum_id=".$this->forum['id']."

        之余把两个表中的id和date(橙色部份)比较一下,把ibf_posts里面match的那个row当中的rep_inc和rep_dec栏合并到ibf_topics被SELECT的row上面。

    • 家园 我怎么觉得直接选送花送草数量就可以了呢?

      $query = "SELECT DISTINCT(ibf_posts.author_id), ibf_topics.*,ibf_posts.rep_inc,ibf_posts.rep_dec FROM ibf_topics

      LEFT JOIN ibf_posts ON

      (ibf_topics.tid=ibf_posts.topic_id AND ibf_posts.author_id=".$ibforums->member['id'].")

      WHERE ibf_topics.forum_id=".$this->forum['id']."

      • 家园 这样会导致部份主题在主题列表上重复出现

        这样会导致部份主题在主题列表上重复出现,我猜这是由于LEFT JOIN时同一个ibf_topics.tid会对应多于一个的ibf_posts的row,而且光是这样的话没办法知道选出来的哪个才是主题帖。

        原本的code只选ibf_posts.author_id没有造成重复问题是因为用了SELECT DISTINCT(ibf_posts.author_id),再加上后面的LEFT JOIN ... ON

        (ibf_topics.tid=ibf_posts.topic_id AND ibf_posts.author_id=".$ibforums->member['id'].")条件使得ibf_posts对应ibf_topics时必然是一行对一行,可是加上ibf_posts.rep_inc和rep_dec之后就不止一行了,因为同一个主题内可能有多个发言收到了花/草。

        我修改了一下主帖的描述,上了两幅截图,可能会清晰一些?

    • 家园 为什么不把 花草的纪录直接放在主题表?

      为什么不把 花rep_inc 草rep_dec 的纪录直接放在主题表 ibf_topics?

分页树展主题 · 全看首页 上页
/ 2
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河