写在前面

上一篇文章中我带着大家进行了权限部分的极简设计,也仅仅是一个基本的权限设计。不过你完全可以基于这套权限系统设计你的更复杂的权限系统,当然更复杂的权限系统要根据你的业务来进行,因为任何脱离实际业务的权限设计都是耍流氓!今天这篇文章我们就对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上。地址,在文章最后给出。

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

表详细说明

分类表

分类表,顾名思义就是文章的分类,这里分类中有个父分类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 第八章 设计篇-内容管理极简设计全过程的更多相关文章

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

    作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9977862.html 写在前面 千呼万唤始出来,首先,请允许我长吸一口气!真没想到一份来自28岁老程序员 ...

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

    作者:依乐祝 原文链接:https://www.cnblogs.com/yilezhu/p/9985451.html 本来这篇只是想简单介绍下ASP.NET Core MVC项目的(毕竟要照顾到很多新 ...

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

    写在前面 这篇我们对用户权限进行极简设计并保留其扩展性.首先很感谢大家的阅读,前面六章我带着大家快速入门了ASP.NET Core.ASP.NET Core的启动过程源码解析及配置文件的加载过程源码解 ...

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

    作者:依乐祝 原文链接:https://www.cnblogs.com/yilezhu/p/9998021.html 写在前面 上篇文章我给大家讲解了ASP.NET Core的概念及为什么使用它,接着 ...

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

    写在前面 上篇文章我带着大家通过分析了一遍ASP.NET Core的源码了解了它的启动过程,然后又带着大家熟悉了一遍配置文件的加载方式,最后引出了依赖注入以及控制反转的概念!如果大家把前面几张都理解了 ...

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

    写在前面 上篇文章我们讲了如在在实际项目开发中使用Git来进行代码的版本控制,当然介绍的都是比较常用的功能.今天我再带着大家一起熟悉下一个ORM框架Dapper,实例代码的演示编写完成后我会通过Git ...

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

    写在前面 上面文章我给大家介绍了Dapper这个ORM框架的简单使用,大伙会用了嘛!本来今天这篇文章是要讲Vue的快速入门的,原因是想在后面的文章中使用Vue进行这个CMS系统的后台管理界面的实现.但 ...

  8. .NET Core实战项目之CMS 第九章 设计篇-白话架构设计

    前面两篇文章给大家介绍了我们实战的CMS系统的数据库设计,源码也已经上传到服务器上了.今天我们就好聊聊架构设计,在开始之前先给大家分享一下这几天我一直在听的<从零开始学架构>里面关于架构设 ...

  9. .NET Core实战项目之CMS 第十章 设计篇-系统开发框架设计

    这两天比较忙,周末也在加班,所以更新的就慢了一点,不过没关系,今天我们就进行千呼万唤的系统开发框架的设计.不知道上篇关于架构设计的文章大家有没有阅读,如果阅读后相信一定对架构设计有了更近一部的理解,如 ...

随机推荐

  1. 关于tomcat WEB-INF/lib下类加载顺序

    关于tomcat WEB-INF/lib下类加载顺序问题 问题描述 smc应用最近碰到一个线上问题,预发机器规则测试接口没问题,但是线上机器就是调用有问题,表面上看,maven模块引用的是自己想要的j ...

  2. kvm虚拟机网络管理

    一.Linux Bridge网桥 管理 # brctl show 显示当前网桥连接状态 # brctl addbr br1vlan-10 添加网桥 # brctl delbr br1vlan-10 删 ...

  3. C# 使用默认浏览器打开链接

    public void OpenUrl(string link) { RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"http\she ...

  4. 30分钟,让你彻底明白Promise原理

    前言 前一阵子记录了promise的一些常规用法,这篇文章再深入一个层次,来分析分析promise的这种规则机制是如何实现的.ps:本文适合已经对promise的用法有所了解的人阅读,如果对其用法还不 ...

  5. Stream闪亮登场

    Stream闪亮登场 一. Stream(流)是什么,干什么 Stream是一类用于替代对集合操作的工具类+Lambda式编程,他可以替代现有的遍历.过滤.求和.求最值.排序.转换等 二. Strea ...

  6. Python数据处理PDF

    Python数据处理(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1h8a5-iUr4mF7cVujgTSGOA 提取码:6fsl 复制这段内容后打开百度网盘手机A ...

  7. 通过命令行操作MYSQL的方法 以及导入大的SQL备份文件

    运行  输入CMD 进入 命令行窗口 输入Mysql.exe的路径  如:c:/wamp/bin/mysql.exe  回车 这时出现 welcome to the mysql ...的提示  进入成 ...

  8. 如何给网站添加IE浏览器升级提示

    1.在代码编辑器中(如Notepad++)打开网站头部模板 2.使用<!––[if IE]>语句添加升级提示,如: 判断是否IE(包含使用IE内核的浏览器) <!––[if IE]& ...

  9. 使用kolin开发你的android应用

    转载请注明出处,谢谢! 前段时间花了大概三周时间学习了kotlin,借着kotlin正好发布1.2,使用kotlin撸了一个android demo Github地址:https://github.c ...

  10. [LeetCode] Score of Parentheses 括号的分数

    Given a balanced parentheses string S, compute the score of the string based on the following rule: ...