答:操作数据,再稍微具体点来说,就是对数据的增删改查
今天,我的任务是,清洗昨天做的留言板中,存在脏数据(即,某个留言被删除,那么接着这个留言的后续回复,也应该被删除)。
首先分析下,为什么会出现这个问题:
主要是昨天完成这个留言板的时候,只是单纯从页面角度来看待这个任务,有了留言就都显示出来,删除某个留言,就只是单纯删除这个留言。
完全没有考虑到,留言之间的联系,抽象来看,就是没有考虑到数据和数据之间的关联
清洗留言数据库脏数据的过程,就是一个不停往上追踪上一级留言的过程,不停的追踪,直到追到根留言(即初始留言 fid=0,这个过程中所有追踪到的留言都是干净的数据),如果没有追踪到根留言,那么,这个过程中,所有追踪到的留言都是脏数据,是需要被清洗的。
我选择的方法比较粗暴,直接找出所有留言的 fid ,然后到数据库里找,看有没有这个留言的父留言,如果有,再找父留言的父留言,这样层层追溯。
在追溯源头的过程中,还需要加上一个判断:
是否已经追溯到了这个留言板的根留言
如果已经追溯到了这个根留言,那么可以不做处理,如果没有追溯到,就执行删除操作。
目前来看,这个方法,有至少一个地方可以改进下,就是在一开始在数据库里找 留言的 fid 的时候,应该加一个判断:
所有 fid 已经等于0 的时候,即这个留言本身就是根留言,那么就不需要把这条代入递归搜索,这个数据本身就是干净的。
相关文章推荐: