discuz 代码分析及相关数据库字典

  icepho  DX中发一个贴需要操作的数据库    http://www.phpchina.com/thread-233575-1-1.html
分析这个问题前,需要确定一下前提:那就是我想要在论坛发一个贴(一个普通的贴,无附件,没有其他杂七杂八的设定),但我又不想老老实实的通过论坛本身的发帖功能来发,我就想通过直接操作数据库来发帖,但又要达到和用论坛发帖功能一样的效果。这样,我们需要操作哪些数据表?
我们需要对6个数据表进行操作(可能有遗漏的,欢迎大家指正):
一、对pre_forum_thread主题表进行操作
      这个表是两个最重要的表之一。这个表中存的是你要发的贴的一些设定,一些主要信息。具体有哪些字段,这些字段分别代表什么,大家自己去看下DX的数据字典。我在这就不多说了。

二、对pre_forum_post帖子表进行操作
      这个表和上面说到的pre_forum_thread主题表是发一个贴必须要操作的两个数据表,只要在这两个数据表中都插入了需要的数据,基本上你需要发的帖子就算发成功了。这个表也是存帖子的一些设定和信息,像标题,内容等。

三、对pre_forum_forum板块表进行操作
     需要修改该表中的主题数,发帖数,今日发帖数,最后发表这四个字段。执行的是update操作。

四、对pre_common_member_count用户统计表进行操作
     修改帖子数,主题数。

五、对pre_common_session会员认证表进行操作
     修改主题ID,论坛ID,最后活动时间,在线时间更新,还有IP这些字段

六、对pre_common_stat趋势统计表进行操作
     修改登录次数,主题数字段。

上面提到的六个数据表中,后面四个都是打酱油的,没有修改他们这个帖子也能发出来,正常显示。更新他们只是为了完全模拟用论坛的发帖功能。

这个问题单独拿出来讨论没有任何意义,没有谁会干这种事,放着好好的发帖功能不用,来直接改数据库。但是某些时候,比如写接口,把帖子标题,内容等当参数传过来,让你在论坛达到发帖的效果,在这些时候还是有点用的。

我不保证我所说的没有任何遗漏,所以欢迎大家跟帖指正。

补充内容 (2012-3-21 18:25):
七、对pre_forum_post_tableid分表协调表进行操作
      刚刚发现的BUG。DX中还有一个分表协调表,在数据量较大,需要进行分表时会用到。此表就一个字段pid

补充内容 (2012-3-21 18:30):

在数据库操作发一个帖子时,需要对pid字段自增一次。否则直接在表中操作发帖后,再在论坛发帖就会报错。这个错是插入forum_post表时,主键pid已存在

pre_forum_post是论坛帖子数据表,保存帖子内容,包括主题内容及回帖内容等。
与pre_forum_thread的区别:pre_forum_thread是主题信息表,仅包括标题、分类、发帖时间等。
下面是pre_forum_post的具体结构:
No. Field Comment Type Key Null Default Extra
1 pid 帖子ID int(10) unsigned PRI NO auto_increment
2 fid 版块ID mediumint(8) unsigned MUL NO 0  
3 tid 主题ID mediumint(8) unsigned MUL NO 0  
4 first 是否是首贴 tinyint(1) NO 0  
5 author 用户名 varchar(15) NO  
6 authorid 用户ID mediumint(8) unsigned MUL NO 0  
7 subject 标题 varchar(80) NO  
8 dateline 发帖时间 int(10) unsigned MUL NO 0  
9 message 帖子内容 mediumtext NO  
10 useip 发帖IP varchar(15) NO  
11 invisible 帖子审核状态
   -2=待审核
   0=已审核通过 tinyint(1) MUL NO 0  
12 anonymous 是否使用匿名发帖 tinyint(1) NO 0  
13 usesig 是否使用个人签名 tinyint(1) NO 0  
14 htmlon 是否使用HTML代码 tinyint(1) NO 0  
15 bbcodeoff 是否禁用编辑器代码 tinyint(1) NO 0  
16 smileyoff 是否禁用表情 tinyint(1) NO 0  
17 parseurloff 是否禁用链接识别 tinyint(1) NO 0  
18 attachment 帖子附件(2=图片附件) tinyint(1) NO 0  
19 rate 评分分数 smallint(6) NO 0  
20 ratetimes 评分次数 tinyint(3) unsigned NO 0  
21 status tinyint(1) NO 0  
22 tags 帖子标签 varchar(255) NO 0  
23 comment 是否存在点评 tinyint(1) NO 0  

数据库字典  http://faq.comsenz.com/library/database/x3/x3_index.htm

去打赏

您的支持将鼓励我们继续创作!

[微信] 扫描二维码打赏

[支付宝] 扫描二维码打赏

发表评论