工具
- 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数据,咱们能够得出结论如下:
文章:
- ID为329和328的示意文章,且为同一篇文章(编辑实现立刻公布)
- 不同字段为:
- 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下面执行后逆向察看数据库窥到一二