乐趣区

java-后端博客系统文章系统No5

工具

  • IDE 为 idea16
  • JDK 环境为 1.8
  • gradle 构建,版本:2.14.1
  • Mysql 版本为 5.5.27
  • Tomcat 版本为 7.0.52
  • 流程图绘制(xmind)
  • 建模剖析软件 PowerDesigner16.5
  • 数据库工具 MySQLWorkBench,版本:6.3.7build

本期指标

  • 依据 WordPress 的工作进行程序设计剖析
  • 实现文章保留和草稿保留相干程序流程剖析

首先咱们关上 WordPress 登录到控制台后轻易保留草稿和文章,而后导出数据库中 posts 表减少内容如下:

在下面的数据中咱们曾经删除了文章内容的数据(数据量太大,不不便查阅)。而后咱们仔细分析下面的 json 数据,咱们能够得出结论如下:

文章:

  1. ID 为 329 和 328 的示意文章,且为同一篇文章(编辑实现立刻公布)
  2. 不同字段为:
  • ID
  • post_date
  • post_date_gmt
  • post_status
  • comment_status
  • ping_status
  • post_name
  • post_modified
  • post_modified_gmt
  • post_parent
  • post_type

通过下面的比照咱们大抵能够得出这样一个论断:

  •   文章编辑实现公布后,会留下一个初始版本的记录和一个正式公布版本的记录。
  •   正式公布的文章和文章历史记录的次要区别如下:

草稿:

  • ID 为 323、325、326、327 的均为草稿,且为同一篇草稿。
  • 具体的不同区别也和下面的相似,所以说咱们能够自行整顿下即可。

小结:

  • 文章和草稿都是有残缺的版本记录。
  • 文章和草稿的格局相似。
  • 草稿分为主动草稿和手动草稿。
  • 版本记录也是残缺的记录,只是一些要害的字段扭转了下。

下面的语句可能查找进去公开的文章,文章 ID 高深莫测。

同时咱们察看数据库能够得出跟文章的归类相干的数据库有:

  • wp_terms
  • wp_term_taxonomy
  • wp_term_relationships

然而这么多表都是文章分类相干的货色,那么文章分类又分为什么些呢?依照 WordPress 的简略构架撑持大量的数据来看,那么咱们能够必定文章标签和目录分类必定是在一起的。所以咱们先看最基本的 wp_terms。

下面这张表是我线上服务器下面的 wp_term 表,可能咱们临时不明确什么意思,不过问题不大。咱们接着看 wp_term_taxonomy。

通过下面这种表咱们就能够明确了 term_id 所对应的 name 别离是什么用的,他们别离有文章分组、文章标签、链接标记等。

然而说这么多都没把下面文章的文章分类在哪找到,所以咱们接着看 wp_term_relationships 表外面的货色。

表外面数据还有很多此处临时省略。

下面表中的 object_id 顾名思义就是说对象的 ID,阐明它不单是文章也还有其余分类的信息。

咱们再看看咱们线上的 wp_posts1(文章)表,外面的简略内容如下:

其实数据不须要那么多,咱们只须要一丢丢数据简略比照就能晓得后果了。

文章 ID 为 9 和 11 的文章的 term_taxonomy_id 别离为:4、6、4、6

term_taxonomy_id 为 4 和 6 的 term_id 和 taxonomy 别离为:

  • 最初咱们在 wp_terms 这个表中能够看到 term_id 别离为 4 和 6 的别离是

所以最初咱们通过这样就能够明确分类信息的大略查找构造,文章分类的大略查找如下:

文章 id ➡ wp_term_relationships 中的 object_id 对应的 term_taxonomy_id ➡ wp_term_taxonomy 的 ID 能够看到别离是什么分类同时能够查找到 term_id ➡ 最初在 wp_term 表中依据 term_id 能够查找到具体的名称。

至此分类信息根本查找实现。

1. 文章和草稿只是一些要害信息的不同

2. 文章和草稿都有残缺的历史记录

3. 文章分类在文章关系表中

4. 文章关系表蕴含了文章目录、文章标签等

5. 文章其余属性都能够通过先在 WordPress 下面执行后逆向察看数据库窥到一二

退出移动版