寫(xiě)在前面
上一篇文章中我?guī)е蠹疫M(jìn)行了權(quán)限部分的極簡(jiǎn)設(shè)計(jì),也僅僅是一個(gè)基本的權(quán)限設(shè)計(jì)。不過(guò)你完全可以基于這套權(quán)限系統(tǒng)設(shè)計(jì)你的更復(fù)雜的權(quán)限系統(tǒng),當(dāng)然更復(fù)雜的權(quán)限系統(tǒng)要根據(jù)你的業(yè)務(wù)來(lái)進(jìn)行,因?yàn)槿魏蚊撾x實(shí)際業(yè)務(wù)的權(quán)限設(shè)計(jì)都是耍流氓!今天這篇文章我們就對(duì)CMS系統(tǒng)的內(nèi)容進(jìn)行設(shè)計(jì)。同時(shí)下篇文章準(zhǔn)備帶著大家理解一下架構(gòu)設(shè)計(jì)。
這幾天我也想了很多,要不要把這個(gè)CMS做的盡可能完善,考慮的盡可能周到!想想還是算了,前面還是以極簡(jiǎn)為主,不然的話嚴(yán)重影響這個(gè)系列教程的進(jìn)度,導(dǎo)致已經(jīng)有很多朋友都留言要崔更了(這里非常感謝大家對(duì)我這個(gè)系列文章的期待,畢竟第一次寫(xiě)一個(gè)系列的文章)。權(quán)限設(shè)計(jì)部分就提現(xiàn)了極簡(jiǎn)主義,這篇內(nèi)容管理呢,更提現(xiàn)了極簡(jiǎn)主義,只設(shè)計(jì)文章的管理以及文章分類的管理。先帶著大家把這個(gè)教程走完。前期主要實(shí)現(xiàn)讓你可以通過(guò)這個(gè)CMS系統(tǒng)搭一個(gè)極簡(jiǎn)主義的博客網(wǎng)站吧!畢竟,這個(gè).NET Core實(shí)戰(zhàn)項(xiàng)目之CMS也是為了帶著大家能夠系統(tǒng)的開(kāi)發(fā)一個(gè).NET Core項(xiàng)目。如果你在閱讀的過(guò)程中有任何的問(wèn)題,歡迎大家在留言區(qū)進(jìn)行留言,或者加入.NET Core實(shí)戰(zhàn)項(xiàng)目交流群637326624跟大伙一起交流經(jīng)驗(yàn)。
本文已收錄至《.NET Core實(shí)戰(zhàn)項(xiàng)目之CMS 第一章 入門(mén)篇-開(kāi)篇及總體規(guī)劃》
作者:依樂(lè)祝
原文鏈接:https://www.cnblogs.com/yilezhu/p/10073642.html
需求分析
由于目前的需求是這個(gè)CMS系統(tǒng)要滿足一個(gè)博客系統(tǒng)的功能。當(dāng)然一個(gè)博客系統(tǒng)首先要有權(quán)限系統(tǒng),這個(gè)我們上篇文章里面的權(quán)限設(shè)計(jì)已經(jīng)能夠滿足功能了??晒庥袡?quán)限系統(tǒng)還不夠,還要有新建文章,發(fā)布文章,文章分類的功能。復(fù)雜點(diǎn)的還要有文章評(píng)論子系統(tǒng),留言子系統(tǒng),友情鏈接子系統(tǒng),甚至還包含SEO優(yōu)化的部分,再?gòu)?fù)雜點(diǎn)就像博客園一樣,還包含會(huì)員子系統(tǒng),會(huì)員也可以發(fā)布文章等等。但是你以為我會(huì)把這些都設(shè)計(jì)進(jìn)來(lái)嗎?騷年,你想多了!我們還是慢慢迭代吧,這里先進(jìn)行博客內(nèi)容以及博客分類的設(shè)計(jì)吧!至于其他的功能以后再慢慢迭代吧!同時(shí)這個(gè)項(xiàng)目我會(huì)一直開(kāi)源在GitHub上,持續(xù)的更新,這些功能后期都會(huì)有的。
綜上,我們的需求很明確:文章管理,以及文章分類管理!文章要求記錄閱讀量。就這么簡(jiǎn)單,驚不驚喜?意不意外?哈哈!要不怎么說(shuō)極簡(jiǎn)呢?
邏輯模型設(shè)計(jì)
這次設(shè)計(jì)的比較順暢,沒(méi)有一點(diǎn)點(diǎn)停頓,可以說(shuō)一步到位,為什么??因?yàn)閷?shí)在是極簡(jiǎn)??!不信?我就直接上圖了!都不用備注,你就能看懂!當(dāng)然,設(shè)計(jì)的PDM文章我今天就會(huì)放到GitHub上。地址,在文章最后給出。

是不是很簡(jiǎn)單,就兩張表,可這兩張表包含的內(nèi)容可不少。下面我們就來(lái)說(shuō)道說(shuō)道
表詳細(xì)說(shuō)明
分類表
分類表,顧名思義就是文章的分類,這里分類中有個(gè)父分類ID可以進(jìn)行循環(huán)嵌套,這樣就可以讓分類具有子分類的功能,理論上支持無(wú)限嵌套,但是傻瓜才會(huì)真的嵌套那么多次吧!
另外分類中加入了SEO相關(guān)的標(biāo)題,關(guān)鍵字,以及描述!什么SEO有什么用?自己百度去。
表中具體的字段我就不一一列舉出來(lái)了!因?yàn)槲視?huì)把PDM放到GitHub上面,你完全可以使用PowerDesigner打開(kāi)看一下。
文章表
文章表就是我們的主表了!一切都是為它服務(wù)!因?yàn)闄?quán)限系統(tǒng)作為支撐系統(tǒng),分類作為文章的輔助,而主角肯定是文章表本身了!前臺(tái)頁(yè)面展示也都是展示文章的內(nèi)容。
這里文章我們有瀏覽量,有了瀏覽量我們就知道了我們的文章的受歡迎程度。
同時(shí),文章表也加入了諸如,是否輪播圖播放,是否置頂,是否熱門(mén)等等字段,好處是我們可以豐富我們的頁(yè)面功能,通過(guò)這些屬性來(lái)自定義每個(gè)部分顯示的文章內(nèi)容!當(dāng)然你也可以通過(guò)分類進(jìn)行設(shè)置,這個(gè)你自由發(fā)揮!
既然是博客系統(tǒng),文章的SEO功能肯定是不能少的,作為我們的主角,肯定也得有SEO標(biāo)題,關(guān)鍵字,內(nèi)容字段,讓我們可以自定義這些內(nèi)容,這里有人或許會(huì)問(wèn)了,萬(wàn)一我沒(méi)寫(xiě)這些字段怎么辦呢?當(dāng)然給默認(rèn)值了,這里思考下我會(huì)怎么給默認(rèn)值吧!
如果我們看到了比較好的文章,想要轉(zhuǎn)載怎么辦呢?這里當(dāng)然要給你留個(gè)來(lái)源跟作者的字段了。不然,你不留來(lái)源跟作者的話,當(dāng)心別人會(huì)告你侵權(quán)哦!
廢話有點(diǎn)多,pdm文件我會(huì)放到GitHub上,自己去看吧!注釋寫(xiě)的又那么全,內(nèi)容又那么少,理解起來(lái)又那么容易,你要再不想看的話,我也沒(méi)辦法了!
GitHub地址
這里我會(huì)把權(quán)限設(shè)計(jì)以及內(nèi)容管理設(shè)計(jì)的邏輯視圖上傳到GayHub上,這里給出地址。覺(jué)得不錯(cuò)的,可以給個(gè)Star!后續(xù)我們也會(huì)在這個(gè)GayHub倉(cāng)庫(kù)進(jìn)行開(kāi)發(fā)的!
GitHub:https://github.com/yilezhu/Czar.Cms
碼云:https://gitee.com/yilezhu/Czar.Cms
總結(jié)
不善于作總結(jié)的程序員不是一個(gè)好作者!本篇文章帶著大家設(shè)計(jì)了一下我們將要實(shí)戰(zhàn)的CMS系統(tǒng)的內(nèi)容管理模塊,也是最核心的模塊!但,我們卻進(jìn)行了簡(jiǎn)單的不能再簡(jiǎn)單的設(shè)計(jì)!因?yàn)槿绻M(jìn)行太詳細(xì)的設(shè)計(jì)的話,會(huì)嚴(yán)重影響更新的進(jìn)度,目前已經(jīng)有很多小伙伴崔更了?。?!上篇文章的權(quán)限設(shè)計(jì)以及本篇文章的內(nèi)容設(shè)計(jì)的邏輯視圖的PDM文件我也已經(jīng)上傳到GayHub上了,有興趣的朋友可以下載查看!
下篇文章我們就一起聊聊架構(gòu)設(shè)計(jì)!