.NET Core實戰項目之CMS 第八章 設計篇-內容管理極簡設計全過程

来源:https://www.cnblogs.com/yilezhu/archive/2018/12/05/10073642.html
-Advertisement-
Play Games

寫在前面 上一篇文章中我帶著大家進行了許可權部分的極簡設計,也僅僅是一個基本的許可權設計。不過你完全可以基於這套許可權系統設計你的更複雜的許可權系統,當然更複雜的許可權系統要根據你的業務來進行,因為任何脫離實際業務的許可權設計都是耍流氓!今天這篇文章我們就對CMS系統的內容進行設計。同時下篇文章準備帶著大家理解 ...


寫在前面

上一篇文章中我帶著大家進行了許可權部分的極簡設計,也僅僅是一個基本的許可權設計。不過你完全可以基於這套許可權系統設計你的更複雜的許可權系統,當然更複雜的許可權系統要根據你的業務來進行,因為任何脫離實際業務的許可權設計都是耍流氓!今天這篇文章我們就對CMS系統的內容進行設計。同時下篇文章準備帶著大家理解一下架構設計。

這幾天我也想了很多,要不要把這個CMS做的儘可能完善,考慮的儘可能周到!想想還是算了,前面還是以極簡為主,不然的話嚴重影響這個系列教程的進度,導致已經有很多朋友都留言要崔更了(這裡非常感謝大家對我這個系列文章的期待,畢竟第一次寫一個系列的文章)。許可權設計部分就提現了極簡主義,這篇內容管理呢,更提現了極簡主義,只設計文章的管理以及文章分類的管理。先帶著大家把這個教程走完。前期主要實現讓你可以通過這個CMS系統搭一個極簡主義的博客網站吧!畢竟,這個.NET Core實戰項目之CMS也是為了帶著大家能夠系統的開發一個.NET Core項目。如果你在閱讀的過程中有任何的問題,歡迎大家在留言區進行留言,或者加入.NET Core實戰項目交流群637326624跟大伙一起交流經驗。

本文已收錄至《.NET Core實戰項目之CMS 第一章 入門篇-開篇及總體規劃
作者:依樂祝
原文鏈接:https://www.cnblogs.com/yilezhu/p/10073642.html

需求分析

由於目前的需求是這個CMS系統要滿足一個博客系統的功能。當然一個博客系統首先要有許可權系統,這個我們上篇文章裡面的許可權設計已經能夠滿足功能了。可光有許可權系統還不夠,還要有新建文章,發佈文章,文章分類的功能。複雜點的還要有文章評論子系統,留言子系統,友情鏈接子系統,甚至還包含SEO優化的部分,再複雜點就像博客園一樣,還包含會員子系統,會員也可以發佈文章等等。但是你以為我會把這些都設計進來嗎?騷年,你想多了!我們還是慢慢迭代吧,這裡先進行博客內容以及博客分類的設計吧!至於其他的功能以後再慢慢迭代吧!同時這個項目我會一直開源在GitHub上,持續的更新,這些功能後期都會有的。
綜上,我們的需求很明確:文章管理,以及文章分類管理!文章要求記錄閱讀量。就這麼簡單,驚不驚喜?意不意外?哈哈!要不怎麼說極簡呢?

邏輯模型設計

這次設計的比較順暢,沒有一點點停頓,可以說一步到位,為什麼??因為實在是極簡啊!不信?我就直接上圖了!都不用備註,你就能看懂!當然,設計的PDM文章我今天就會放到GitHub上。地址,在文章最後給出。

1544013731217

是不是很簡單,就兩張表,可這兩張表包含的內容可不少。下麵我們就來說道說道

表詳細說明

分類表

分類表,顧名思義就是文章的分類,這裡分類中有個父分類ID可以進行迴圈嵌套,這樣就可以讓分類具有子分類的功能,理論上支持無限嵌套,但是傻瓜才會真的嵌套那麼多次吧!
另外分類中加入了SEO相關的標題,關鍵字,以及描述!什麼SEO有什麼用?自己百度去。
表中具體的欄位我就不一一列舉出來了!因為我會把PDM放到GitHub上面,你完全可以使用PowerDesigner打開看一下。

文章表

文章表就是我們的主表了!一切都是為它服務!因為許可權系統作為支撐系統,分類作為文章的輔助,而主角肯定是文章表本身了!前臺頁面展示也都是展示文章的內容。
這裡文章我們有瀏覽量,有了瀏覽量我們就知道了我們的文章的受歡迎程度。
同時,文章表也加入了諸如,是否輪播圖播放,是否置頂,是否熱門等等欄位,好處是我們可以豐富我們的頁面功能,通過這些屬性來自定義每個部分顯示的文章內容!當然你也可以通過分類進行設置,這個你自由發揮!
既然是博客系統,文章的SEO功能肯定是不能少的,作為我們的主角,肯定也得有SEO標題,關鍵字,內容欄位,讓我們可以自定義這些內容,這裡有人或許會問了,萬一我沒寫這些欄位怎麼辦呢?當然給預設值了,這裡思考下我會怎麼給預設值吧!
如果我們看到了比較好的文章,想要轉載怎麼辦呢?這裡當然要給你留個來源跟作者的欄位了。不然,你不留來源跟作者的話,當心別人會告你侵權哦!
廢話有點多,pdm文件我會放到GitHub上,自己去看吧!註釋寫的又那麼全,內容又那麼少,理解起來又那麼容易,你要再不想看的話,我也沒辦法了!

GitHub地址

這裡我會把許可權設計以及內容管理設計的邏輯視圖上傳到GayHub上,這裡給出地址。覺得不錯的,可以給個Star!後續我們也會在這個GayHub倉庫進行開發的!

GitHub:https://github.com/yilezhu/Czar.Cms
碼雲:https://gitee.com/yilezhu/Czar.Cms

總結

不善於作總結的程式員不是一個好作者!本篇文章帶著大家設計了一下我們將要實戰的CMS系統的內容管理模塊,也是最核心的模塊!但,我們卻進行了簡單的不能再簡單的設計!因為如果進行太詳細的設計的話,會嚴重影響更新的進度,目前已經有很多小伙伴崔更了!!!上篇文章的許可權設計以及本篇文章的內容設計的邏輯視圖的PDM文件我也已經上傳到GayHub上了,有興趣的朋友可以下載查看!
下篇文章我們就一起聊聊架構設計!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 引言 小A正在balabala寫代碼呢,DBA小B突然發來了一條消息,“快看看你的用戶特定信息表T,裡面的主鍵,也就是自增id,都到16億了,這才多久,在這樣下去過不了多久主鍵就要超出範圍了,插入就會失敗,balabala......” 我記得沒有這麼多,最多1k多萬,count了下,果然是1100 ...
  • 題意 "題目鏈接" Sol NOI的題都這麼良心麽。。 先交個$n^4$暴力 = 75 hash優化一下 = 90 然後$90$到$100$分之間至少差了$10$難度臺階= = $90$分的暴力hash就比較trival了。 考慮怎麼優化。 顯然我們只要找出所有形如$AA$的字元串就行了,設$pre ...
  • 簡介: 正則表達式本身是一個小型的、高度專業化的編程語言,而在python中,通過內嵌集成re模塊,我們可以通過直接調用來實現正則匹配。 正則表達式基礎知識: --普通字元匹配自身 abc abc --元字元 . :匹配任何字元(\n)換行符除外例:a.a aba \ :轉義字元例:a\tb a b ...
  • iOS Swift WisdomHUD 提示界面框架 Framework Use profile(應用簡介) 一:WisdomHUD簡介 今天給大家介紹一款iOS的界面顯示器:WisdomHUD,WisdomHUD是Swift 4.2編寫的framework,支持iOS8.0及以上使用,並且完成相容 ...
  • 1. 構造器實例化 spring容器通過bean對應的預設的構造函數來實例化bean。 2. 靜態工廠方式實例化 首先創建一個靜態工廠類,在類中定義一個靜態方法創建實例。 靜態工廠類及靜態方法: xml配置文件 3. 實例工廠方式實例化 該種方式的工廠類中,不再使用靜態方法創建Bean實例,而是採用 ...
  • using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.IO;using System.Text;using System.Web.Script. ...
  • 在 Web 應用程式開發過程中,總是無法避免涉及到文件上傳,這次我們來聊一聊怎麼去實現一個簡單方便可復用文件上傳功能;通過創建自定義綁定模型來實現文件上傳。 ...
  • 這裡貼一段VB的代碼,C#參照也是類似的,讀取C盤字體庫中的字體,判斷字體是否存在,不存在即可使用特殊方法對字體進行安裝 這對部分B/S搭建的軟體還是能起到作用的,畢竟有些軟體設置的字體在系統庫中並不存在,如果不安得話,會出現各種亂碼的情況,所以 才需要這麼做 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...