.NET Core实战项目之CMS 第八章 设计篇-内容管理极简设计全过程

写在前面

上一篇文章.NET Core实战项目之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上。地址,在文章最后给出。

640?wx_fmt=png

是不是很简单,就两张表,可这两张表包含的内容可不少。下面我们就来说道说道

表详细说明

分类表

分类表,顾名思义就是文章的分类,这里分类中有个父分类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上了,有兴趣的朋友可以下载查看!
下篇文章我们就一起聊聊架构设计!

相关文章:

  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划

  • .NET Core实战项目之CMS 第二章 入门篇-快速入门ASP.NET Core看这篇就够了

  • .NET Core实战项目之CMS 第三章 入门篇-源码解析配置文件及依赖注入

  • .NET Core实战项目之CMS 第四章 入门篇-Git的快速入门及实战演练

  • .NET Core实战项目之CMS 第五章 入门篇-Dapper的快速入门看这篇就够了

  • .NET Core实战项目之CMS 第六章 入门篇-Vue的快速入门及其使用

  • .NET Core实战项目之CMS 第七章 设计篇-用户权限极简设计全过程

原文地址:https://www.cnblogs.com/yilezhu/p/10073642.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/318615.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P7405-[JOI 2021 Final]雪玉【二分】

正题 题目链接:https://www.luogu.com.cn/problem/P7405 题目大意 nnn个点在坐标轴上,qqq次每次所有点向一个方向移动若干步,每个点的权值是它第一次覆盖的区间长度(也就是一个区间只能贡献到第一次经过它的点)。 求所有点的最终…

牛客题霸 [ 集合的所有子集] C++题解/答案

牛客题霸 [ 集合的所有子集] C题解/答案 题目描述 现在有一个没有重复元素的整数集合S,求S的所有子集 注意: 你给出的子集中的元素必须按升序排列 给出的解集中不能出现重复的元素 题解: 先sort一下,然后通过回溯实现选与不选…

2021“MINIEYE杯”中国大学生算法设计超级联赛(2)I love max and multiply(转化)

I love max and multiply Code 代码抄的std #include<bits/stdc.h> using namespace std; using lllong long; template <class Tint> T rd() {T res0;T fg1;char chgetchar();while(!isdigit(ch)) {if(ch-) fg-1;chgetchar();}while( isdigit(ch)) res(res<&…

人工智能第二课:认知服务和机器人框架探秘

这是《人工智能系列笔记》的第二篇&#xff0c;我利用周六下午完成课程学习。这一方面是因为内容属于入门级&#xff0c;并且之前我已经对认知服务和机器人框架比较熟悉。如有兴趣&#xff0c;请关注该系列 https://aka.ms/learningAI 但是学习这门课程还是很有收获&#xff0c…

洛谷P4322 最佳团伙(树上dp)

题目描述 洛谷传送门 题目描述 JSOI 信息学代表队一共有 N 名候选人&#xff0c;这些候选人从 1 到 N 编号。方便起见&#xff0c;JYY 的编号是 0 号。每个候选人都由一位编号比他小的候选人Ri推荐。如果 Ri0&#xff0c;则说明这个候选人是 JYY 自己看上的。 为了保证团队的…

CF587F-Duff is Mad【AC自动机,根号分治】

正题 题目链接:https://www.luogu.com.cn/problem/CF587F 题目大意 给出nnn个字符串sss。qqq次询问给出l,r,kl,r,kl,r,k要求输出sl..rs_{l..r}sl..r​在sks_ksk​中出现了多少次。 1≤n,q,∑∣si∣≤1051\leq n,q,\sum |s_i|\leq 10^51≤n,q,∑∣si​∣≤105 解题思路 考虑一…

牛客题霸 [最长重复子串] C++题解/答案

牛客题霸 [最长重复子串] C题解/答案 题目描述 一个重复字符串是由两个相同的字符串首尾拼接而成&#xff0c;例如abcabc便是长度为6的一个重复字符串&#xff0c;而abcba则不存在重复字符串。 给定一个字符串&#xff0c;请编写一个函数&#xff0c;返回其最长的重复字符子串…

codeforces1552 D. Array Differentiation(思维+暴力)

D. Array Differentiation 因为相减的顺序可以变化&#xff0c;所以这个环中数的正负性以及相减顺序其实是没有影响的&#xff0c;那么我们可以规定一个方向&#xff0c;然后再枚举所有可能的正负性。 设这环中点分别是 v1,v2,⋯vkv_1,v_2,⋯v_kv1​,v2​,⋯vk​&#xff0c;那…

粉刷木板(ybtoj-单调队列)

题目描述 解析 头疼 定义dp[i]:只用前i块板的最大价值 对于新加入的一个木匠&#xff1a; 不难写出dp转移式&#xff1a; dp[i]max(dp[k](i-k)*p)k表示开始刷的前一个 其中i>s i-k<l; 要是这么转移会是n^2m 所以我就不废了。。。 其实离正解很接近了 把上面移一下项&am…

P6563-[SBCOI2020]一直在你身旁【dp,单调队列】

正题 题目链接:https://www.luogu.com.cn/problem/P6563 题目大意 长度为nnn的序列aia_iai​&#xff0c;现在有一个随机[1,n][1,n][1,n]的整数&#xff0c;每次你可以花费aia_iai​询问这个数字是否大于iii&#xff0c;求猜出所有数至少要多少花费。 T≤500,∑n≤7000T\leq …

牛客题霸 [字符串的排列] C++题解/答案

牛客题霸 [字符串的排列] C题解/答案 题解&#xff1a; stl真好用&#xff0c;emmm。。。 代码&#xff1a; class Solution { public:vector<string> Permutation(string str) {if (str.empty()) return {};sort(str.begin(), str.end());vector<string>ans;i…

POJ - 3415 Common Substrings(长度不小于K的公共子串个数)

Common Substrings 后缀数组单调栈 题解1 题解2 题解3 #include<cstdio> #include<cstring> #include<iostream> using namespace std; typedef long long ll; // sa[i]: 排名是i位的是第几个后缀 // rk[i]: 第i个后缀的排名是多少 // height[i]: sa[i]与s…

跳房子(ybtoj-单调队列)

文章目录题目描述解析代码thanks for reading&#xff01;题目描述 洛谷传送门 跳房子&#xff0c;也叫跳飞机&#xff0c;是一种世界性的儿童游戏&#xff0c;也是中国民间传统的体育游戏之一。 跳房子的游戏规则如下&#xff1a; 在地面上确定一个起点&#xff0c;然后在起…

使用Dapper持久化IdentityServer4

最近研究dotnet core,微软将IdentityServer4作为推荐的服务授权和验证的组件,其独立性特别适合微服务或者分布式的服务扩展验证,所以非常受广大dotnet开发人员的青睐.默认的IdentityServer4默认使用内存对象的验证和授权,而在IdentityServer的官方推荐只有Entity Framework cor…

P5470-[NOI2019]序列【模拟费用流】

正题 题目链接:https://www.luogu.com.cn/problem/P5470 题目大意 两个长度为nnn的序列a,ba,ba,b&#xff0c;求出它们两个长度为KKK的子序列&#xff0c;且这两个子序列至少有LLL个位置下标相等。 求最大化两个子序列的和。 T≤10,1≤n≤2105,∑n≤106T\leq 10,1\leq n\leq…

牛客题霸 [数组中未出现的最小正整数] C++题解/答案

牛客题霸 [数组中未出现的最小正整数] C题解/答案 题目描述 给定一个无序数组arr&#xff0c;找到数组中未出现的最小正整数 例如arr [-1, 2, 3, 4]。返回1 arr [1, 2, 3, 4]。返回5 [要求] 时间复杂度为O(n)O(n)&#xff0c;空间复杂度为O(1)O(1) 题解&#xff1a; 如果…

再不学习我们就out了

前不久我们组来了个Graduate Developer&#xff0c;刚毕业&#xff0c;经验不多&#xff0c;有一次闹了个乌龙&#xff0c;把Stage数据库直接删掉了……好在Azure有备份&#xff0c;不然就算Stage没有重要数据&#xff0c;也得花点时间重建&#xff0c;其他的开发、测试工作都得…

矩阵快速幂一篇通

文章目录概述快速幂解析代码矩阵运算定义加法乘法单位矩阵一、斐波拉契&#xff08;基础模板&#xff09;题目描述解析代码二、行为方案&#xff08;实际应用&#xff09;题目描述解析代码三、矩阵求和&#xff08;子矩阵作为矩阵元素&#xff09;题目描述解析代码四、最短路径…

SPOJ687 Repeats(重复次数最多的连续子串)

Repeats hihoCoder 1419 后缀数组四重复旋律4(重复次数最多的连续子串) #include<bits/stdc.h> using namespace std;// sa[i]: 排名是i位的是第几个后缀 // rk[i]: 第i个后缀的排名是多少 // height[i]: sa[i]与sa[i-1] const int N50010; char s[N]; int rk[N],sa[N…

玉米田(加加强版)【插头dp】

前言 水解警告&#xff0c;数据水勉强卡过的 正题 题目大意 n∗mn*mn∗m的网格里面有些格子被禁止&#xff0c;现在求选取若干个不相邻的格子的方案数。 1≤n≤120,1≤m≤211\leq n\leq 120,1\leq m\leq 211≤n≤120,1≤m≤21 解题思路 听说是插头dpdpdp然后想了一下觉得比插…