Changes between Initial Version and Version 1 of forum_combine


Ignore:
Timestamp:
11/28/2013 04:14:52 PM (12 years ago)
Author:
jiangyichao
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • forum_combine

    v1 v1  
     1一,需求确认与分析 
     2   1.确定需求合理性; 
     3     检查是否存在同一个版块合并到不同版块,目标版块与源版块一样之类的基本逻辑错误; 
     4   2.父类版块无法移动或合并到子类版块; 
     5     在系统的数据库结构及系统的设计上,是不允许这样的操作,可以用替代办法,新建同名版块,然后再进行合并操作; 
     6   3.删除或移动版块是否包含子类以下的版块; 
     7     在删除、合并、移动版块的时候,往往出现源版块存在子版,且子版以下还有子版的情况,在操作之前,先要确定一共有基层,确定包含所有需要迁移的版块; 
     8   4.注意虚拟子版的储存逻辑; 
     9     虚拟子版跟正常版块在数据库的存储逻辑有所差异,需要注意版块操作执行的逻辑; 
     10   5.确认合并以后所在的父版; 
     11     确认好合并后的版块是否已经存在的版块,否则需要新建,且确认新建版块的位置; 
     12   6.精华帖与置顶帖是否需要保留; 
     13     在删除版块过程中,如果没有清理相应的置顶帖,精华帖,会导致前台报错,没有找到对应的帖子; 
     14二,开发流程与设计 
     15  1.删除 
     16    1)删除帖子并非真正删除数据,把版块对应的bbs7_forum的数据【deleted改成1,parentid改成 0】;[[BR]] 
     17    2)把删除版块对应帖子数据的【fid改成1,status改成-1】,从bbs7_topic_x转移到bbs7_topic_1表中;[[BR]] 
     18    3)把删除帖子对应的bbs7_topic_forum_x映射表数据,【fid改成1】;[[BR]] 
     19    4) 在bbs7_top表中删除对应的置顶帖;[[BR]] 
     20    5) 对bbs7_forum里面的访问数、发帖数、回帖数等统计数据进行【清0】;[[BR]] 
     21  2合并 
     22    1)更新源版块对应的bbs7_pick表成目标版块的【fid继承关系】;[[BR]] 
     23    2)在bbs7_top表中删除对应的置顶帖;[[BR]] 
     24    3)若源版块是【正常子版】,则让其帖子数据的fid改成目标版块的fid,再迁移到目标版块帖子所在的bbs7_topic_x;[[BR]] 
     25    4)若源版块是【虚拟子版】,则让其帖子数据的subforumid改成目标版块的fid,fid改成目标版块的父类fid,再迁移到目标版块帖子所在的bbs7_topic_x;[[BR]] 
     26    5)对bbs7_forum里面的访问数、发帖数、回帖数等统计数据进行增加;[[BR]] 
     27    6)把源版块帖子对应的bbs7_topic_forum_x映射表数据,fid改成新版块的fid,(目标版块是虚拟子版,fid改成其父类fid;目标版块是正常子版,fid改成其fid);[[BR]] 
     28三,sql实现与优化 
     29  1)备份数据源,写出备份脚本、回滚数据脚本和清空备份的脚本;[[BR]] 
     30    2) 根据需求文档,把需要操作的【数据源】,存到【临时表】,以便进行并表查询还有条件查询;[[BR]] 
     31    3) 有【批量思想】,在一些负责的操作当中,需要的表比较多,必须尽量把数据统一操作,避免重复,[[BR]]例如,在迁移topic数据的时候,把所有源版块帖子数据存到一个临时表,然后再统一进行相应的update操作;[[BR]] 
     32    4)避免有【循环思想】,不能循环对查询结果进行操作;[[BR]] 
     33    5)多次实践尝试,优化sql语句的执行速度,避免多重的内连子查询;[[BR]] 
     34    6)活用临时表作为批量操作的容器;[[BR]] 
     35    7)合理为临时表添加【主键】及【索引】,增加链接、条件查询的执行速度;[[BR]]