工具
IDE為idea16
JDK環(huán)境為1.8
gradle構(gòu)建威鹿,版本:2.14.1
Mysql版本為5.5.27
Tomcat版本為7.0.52
流程圖繪制(xmind)
建模分析軟件PowerDesigner16.5
數(shù)據(jù)庫(kù)工具M(jìn)ySQLWorkBench三妈,版本:6.3.7build
本期目標(biāo)
根據(jù)WordPress的工作進(jìn)行程序設(shè)計(jì)分析
完成文章保存和草稿保存相關(guān)程序流程分析
首先我們打開(kāi)WordPress登錄到控制臺(tái)后隨便保存草稿和文章莱睁,然后導(dǎo)出數(shù)據(jù)庫(kù)中posts表增加內(nèi)容如下:
在上面的數(shù)據(jù)中我們已經(jīng)刪除了文章內(nèi)容的數(shù)據(jù)(數(shù)據(jù)量太大厌小,不方便查閱)呵晨。然后我們仔細(xì)分析上面的json數(shù)據(jù)诡右,我們可以得出結(jié)論如下:
文章:
? ? ? ? ? ? ID為329和328的表示文章稠项,且為同一篇文章(編輯完成立即發(fā)布)
? ? ? ? ? ? 不同字段為:
? ? ? ? ? ? ? ID
? ? ? ? ? ? ? post_date
? ? ? ? ? ? ? post_date_gmt
? ? ? ? ? ? ? post_status
? ? ? ? ? ? ? comment_status
? ? ? ? ? ? ? ping_status
? ? ? ? ? ? ? post_name
? ? ? ? ? ? ? post_modified
? ? ? ? ? ? ?post_modified_gmt
? ? ? ? ? ? ?post_parent
? ? ? ? ? ? post_type
通過(guò)上面的對(duì)比我們大致可以得出這樣一個(gè)結(jié)論:
? 文章編輯完成發(fā)布后升筏,會(huì)留下一個(gè)初始版本的記錄和一個(gè)正式發(fā)布版本的記錄撑柔。
? 正式發(fā)布的文章和文章歷史記錄的主要區(qū)別如下:
草稿:
? ? ? ? ? ID為323、325您访、326铅忿、327的均為草稿,且為同一篇草稿灵汪。
? ? ? ? ? ?具體的不同區(qū)別也和上面的類似檀训,所以說(shuō)我們可以自行整理下即可。
小結(jié):
文章和草稿都是有完整的版本記錄享言。
文章和草稿的格式類似峻凫。
草稿分為自動(dòng)草稿和手動(dòng)草稿。
版本記錄也是完整的記錄览露,只是一些關(guān)鍵的字段改變了下荧琼。
上面的語(yǔ)句能夠查找出來(lái)公開(kāi)的文章,文章ID一目了然差牛。
同時(shí)我們觀察數(shù)據(jù)庫(kù)可以得出跟文章的歸類相關(guān)的數(shù)據(jù)庫(kù)有:
wp_terms
wp_term_taxonomy
wp_term_relationships
但是這么多表都是文章分類相關(guān)的東西命锄,那么文章分類又分為什么些呢?按照WordPress的簡(jiǎn)單構(gòu)架支撐大量的數(shù)據(jù)來(lái)看多糠,那么我們可以肯定文章標(biāo)簽和目錄分類肯定是在一起的累舷。所以我們先看最根本的wp_terms。
上面這張表是我線上服務(wù)器上面的wp_term表夹孔,可能我們暫時(shí)不明白什么意思被盈,不過(guò)問(wèn)題不大析孽。我們接著看wp_term_taxonomy。
通過(guò)上面這種表我們就可以明白了term_id所對(duì)應(yīng)的name分別是什么用的只怎,他們分別有文章分組袜瞬、文章標(biāo)簽、鏈接標(biāo)記等身堡。
但是說(shuō)這么多都沒(méi)把上面文章的文章分類在哪找到邓尤,所以我們接著看wp_term_relationships表里面的東西。
表里面數(shù)據(jù)還有很多此處暫時(shí)省略贴谎。
上面表中的object_id顧名思義就是說(shuō)對(duì)象的ID汞扎,說(shuō)明它不單是文章也還有其他分類的信息。
我們?cè)倏纯次覀兙€上的wp_posts(文章)表擅这,里面的簡(jiǎn)略內(nèi)容如下:
其實(shí)數(shù)據(jù)不需要那么多澈魄,我們只需要一丟丟數(shù)據(jù)簡(jiǎn)單對(duì)比就能知道結(jié)果了。
文章ID為9和11的文章的term_taxonomy_id分別為:4仲翎、6痹扇、4、6
term_taxonomy_id為4和6的term_id和taxonomy分別為:
最后我們?cè)趙p_terms這個(gè)表中可以看到term_id分別為4和6的分別是
所以最后我們通過(guò)這樣就可以明白分類信息的大概查找結(jié)構(gòu)溯香,文章分類的大概查找如下:
文章id ? wp_term_relationships中的object_id對(duì)應(yīng)的term_taxonomy_id ? wp_term_taxonomy的ID可以看到分別是什么分類同時(shí)可以查找到term_id ? 最后在wp_term表中根據(jù)term_id可以查找到具體的名稱鲫构。
至此分類信息基本查找完成。
1.文章和草稿只是一些關(guān)鍵信息的不同
2.文章和草稿都有完整的歷史記錄
3.文章分類在文章關(guān)系表中
4.文章關(guān)系表包含了文章目錄玫坛、文章標(biāo)簽等
5.文章其他屬性都可以通過(guò)先在WordPress上面執(zhí)行后逆向觀察數(shù)據(jù)庫(kù)窺到一二