我们常见的cms里面的文章表 article 一般有下面几个字段
id ,标题,作者id,正文,分类id,发布时间,点击率,状态 ,其它就暂时忽略
id, subject, authorId, content,categoryId,postTime,hits,status
其中status 为0时表示未审核的,1为正常的。
当我们 修改一篇文章时一般的做法就是 直接修改这篇文章对应的内容。即 update article set content = '{$content}' where id = xx
这样做的好处就是 一篇文章无论修改多少次,在数据库中都是只有一条记录,坏处是 无法看到之前的记录。
今天看了下wordpress的数据库,它多了一个重要的字段,post_parent,
当是第一次发表的时候post_parent=0,
下次修改记录时先查出原来的记录,然后更新这条记录,最后把原来的记录(其中post_parent为该记录的id)插入到article表中
比如 用户要修改id为88的文章,步骤如下:
1.先查出id=88的记录,保存到一个变量里面
2.更新id=88的记录(用用户提交过来的数据)
3.把原来的记录插入到article表里面,其中 post_partent=88
当然 wordpress做的远远不止这些,我这里只是把一些跟这个逻辑相关的拿出来,比如它还有一个状态 是用来标识 是 发布的 还是 自动保存的 或者是 继承的。
里面还是有很多它这样做的原因,比如自动保存,第一次点发表时就插入一条数据到数据库,为了得到id,状态为 auto-draft 。
这是我在csdn上发表的第一篇Blog,很多语句和知识点可能有所欠缺,还请大家见谅~