discuz数据库写入数据发帖

discuz的发帖逻辑比较复杂,网上找了几篇网站结合着整理下


discuz的数据采集程序,discuz发帖主要涉及几个数据库表
        discuz发表主题设计的几个表:(这里列出了主要的几个相关的表) 
        1、主题表 pre_forum_thread:这个表一个主要数据就是 tid 主题ID
        2、post 分表协调表 pre_forum_post_tableid:这里需要获取一个自增的 pid
        3、帖子表 pre_forum_post :记录主题pid、fid、tid、title、content等主要信息
        4、版块表 pre_forum_forum:这里主要更新版块的主题、帖子数量
        5、帖子主题审核数据表 pre_forum_thread_moderate:这个可以根据自己状况决定,并不是必须的(这一步不是必需的)
        6、用户统计表 pre_common_member_count:主要是更新用户的主题数量

pre_common_member_count表和pre_forum_forum表两个表中主要修改帖子数据量其中主要设计到以下几个字段:

threads: 版块内的主题数.

posts: 版块内的帖子数.

todayposts: 版块内, 今日发帖的个数. 这个是post的个数, 不是thread的个数.

lastpost: 这个字段比较奇葩,  看名字它是表示本版块最新一个帖子.   但它的值比较有意思, 这是一个字符串,  由四部分组成, 每部分之间用 \t 制表符分割.  第一部分是这个帖子的pid,  第二部分是帖子的标题, 第三部分是帖子的发帖时间, 第四部分是帖子的作者名.   这个字段可能是为了提高论坛首页的性能, 有了他之后,首页就负担轻了很多.


discuz 发帖流程主要分为7个步骤:
        第一步:向 主题表 pre_forum_thread 中插入版块ID、用户ID、用户名、帖子标题、发帖时间等信息。
        第二步:获取第一步插入表 pre_forum_thread 的数据ID,作为主题ID,即 tid 
        第三步:向 post 分表协调表 pre_forum_post_tableid 插入一条数据,这张表中只有一个自增字段 pid 
        第四步:获取 第三步 插入表 pre_forum_post_tableid 的数据ID,作为 pid 
        第五部:向帖子表 pre_forum_post 中插入帖子相关信息,这里需要注意的是: pid为第四部的pid值,tid为第二步的tid值 
        第六部:更新版块 pre_forum_forum 相关主题、帖子数量信息 
        第七步:更新用户 pre_common_member_count 帖子数量信息 
        discuz发帖过程主要就是以上7个步骤,通过这几个步骤就可以完成对实现discuz的发帖流程,其中设计到一些积分等其他信息的可以自己加上。 


discuz 数据库相关信息可以查看:http://faq.comsenz.com/library/database/x25/x25_index.htmdiscuz 

discuz 数据库相关信息可以查看:http://faq.comsenz.com/library/database/x25/x25_index.htm
discuz 数据库相关信息可以查看:http://faq.comsenz.com/library/database/x25/x25_index.htm
        自己处理发帖主要涉及到了上面6个数据库表,其中第5个不是必须的。
展开阅读全文

没有更多推荐了,返回首页