Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【系统设计】如何设计一个CMS系统

【系统设计】如何设计一个CMS系统

作者头像
心谭博客
发布于 2020-05-06 15:34:23
发布于 2020-05-06 15:34:23
2.7K00
代码可运行
举报
文章被收录于专栏:YuanXinYuanXin
运行总次数:0
代码可运行

什么是 CMS?

CMS 是:内容管理系统。而这个内容,是存放在具体介质上,例如云数据库中。

在 cms 中,可以创建一个“内容集”(类似于数据表),并且可以修改内容集的字段信息。

例如,我创建一个 passages 的内容集,专门用来存储文章。在 passages 中,有多个字段,每个字段是一个对象,包括字段 id、字段名称、字段说明、默认值、字段类型(string,number,link,markdown,image,vedio 等等)。可以看到,这里字段类型并不严格对齐任何 sql 的字段类型,而是更加日常化,大大降低了非技术同学使用的成本。

在使用 cms 时候,体验类似与常见的 sql 可视化管理工具,但是更加友好。例如一个字段如果是 image 类型,那么在前端就会自动渲染 img 标签;如果是 link 类型,那么前端就会渲染跳转链接。

CMS 的好处与用途

随着业务内容越来越多,要输出的内容也越来越多。而这些文章、活动、广告等内容集,并不像技术文档那样,借助 git 来进行管理:对非技术同学来说,git 操作复杂;内容变动过于频繁,管理起来也会增加额外成本。

因此,一个 cms 系统就非常有用了。在使用上,非常直观。运营同学完全可以根据自身需要,创建一个新的内容集。前端进行动态化构建的时候,直接拉取对应内容集中的内容进行构建即可。

数据库集合设计

用户集合

除了用户名、密码字段,添加一个 role 字段:"user" | "root"。对于 user 身份的用户,只能创建新的内容;对于 root 身份的用户,既能创建内容,也能创建新的数据集合。

内容集信息集合

专门开辟一个集合用来存储内容集和其下字段的信息。

对于内容集信息集合,数据结构是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
name: 内容集名称
collectionName: 内容集对应的集合名称
description: 内容集描述
fields: 此内容集的所有字段信息对象

对于字段信息对象 FieldObject,数据结构是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fieldId: 字段标识
fieldName: 字段名称
fieldType<'image' | 'url' | 'string' | 'int'>: 字段类型(根据需求自定义即可)
fieldOrder: 字段权重,越大越靠前

前端逻辑

在登录成功后,前端拉取内容集信息集合,并且保存在 Store 中。因为云开发的云数据库是非关系型数据库,所以内容集信息可以存放在同一个集合中。

在前端进入对应的内容集:

  • 将内容集信息集合的字段信息,映射为表格组件属性
  • 根据 collectionName 字段,查询对应的集合数据
  • 将集合数据渲染到表格组件中
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CMS 进化之路:从当下变革到未来蓝图
内容管理系统(CMS)自诞生以来,经历了显著的演变,从最初简单的网站内容管理工具,发展成为如今支持复杂数字体验的核心平台。随着技术的飞速发展和用户需求的不断变化,CMS 的未来充满了机遇与挑战。随着技术的持续创新,如人工智能、云计算、低代码开发等前沿技术的深度融合,CMS 正处于前所未有的变革浪潮之中,其未来发展前景充满无限可能。深入探究 CMS 当下的变革方向以及预测未来的发展趋势,对于企业把握数字化转型机遇、提升市场竞争力具有至关重要的意义。
KATSU
2025/05/23
770
CMS 进化之路:从当下变革到未来蓝图
微搭低代码+CMS内容管理,从零构建预约+查询小程序
日常我们作为个人账户开通腾讯云微搭低码功能后,可以有两个应用的创建权限,那我们今天就充分利用这两个资源,结合微搭低代码深度集成的云开发CMS 内容管理系统,打造一款属于自己的在线预约小程序。
腾讯云开发TCB
2021/04/09
3.5K1
微搭低代码+CMS内容管理,从零构建预约+查询小程序
【自然框架】CMS之数据库设计
  在园子里也混了三年多,随笔200多,一开始只是想把自己的经验写一下,后来呢弄出来了一个“自然框架”,主要精力就放在了介绍自然框架的思路上面了。随笔多了就发现一个问题:有点乱。虽然博客有分组,但是只支持一级分组,不支持n级的。博客里也没有“栏目”这一类的设置。所以对于随笔的管理有有点力不从心了。有些兄弟看到我的博客,看到我说自然框架,然后就会很迷茫,自然框架到底是什么?能做什么?如果想看看的话,从什么地方开始看,按照什么顺序来看?   博客的这种形式就不大好解决这种需求了,当然也许是我对博客还不了解,没有
用户1174620
2018/02/26
2K0
【自然框架】CMS之数据库设计
基于 Next.js 和云开发 CMS 的内容型网站应用实战开发
董沅鑫,云开发 CloudBase 团队研发工程师,侧重于前端工程化、node 服务开发,业余时间出没在 xin-tan.com。
腾讯云开发TCB
2020/06/03
5.4K0
用pageadmin cms系统进行网站制作的经验总结
我所在的公司是一个大型的国企集团,经常要制作大大小小的网站,活动专题,集团下属,部分分站等等,之前一直内部完成,悲剧的是内部开发人员技术比较残,做出来的后台感觉惨不忍睹,因为后台太简单,所以制作新网站效率非常低,这时候迫切需要采购一个专业的CMS系统来替代,
用户4831957
2020/07/29
1.2K0
使用 strapi 快速构建 API 和 CMS 管理系统
作为一个合格的前端工程师,怎么能够不懂得自己写后端接口呢?会自己写后端API接口,能够在工作当中有效的提供工作竞争力,还能够帮我有效的提高工作效率。有的同学说,我会 Node.js,确实使用 Node.js 帮助前端工程师晋升为全栈 。
小小杰啊
2023/03/08
11.6K0
使用 strapi 快速构建 API 和 CMS 管理系统
Payload简介:无头CMS和应用程序框架
我们来看看 Payload,一个有趣的 CMS 和应用程序框架选择,如果您不需要将前端和后端绑定在一起的话。
云云众生s
2024/09/13
3600
Payload简介:无头CMS和应用程序框架
云开发CMS内容管理系统,5分钟搞定小程序管理后台
小程序·云开发的云调用能力,让用户可以免鉴权快速调用微信的开放能力,极大节约了开发成本。现在,大家期待已久的云开发 CMS 内容管理系统,终于上线啦!顺便提示,接下来还可以二次开发哦!
腾讯云开发TCB
2020/06/03
5K0
云开发CMS内容管理系统,5分钟搞定小程序管理后台
【DEDE二开】如何用织梦DedeCMS网站系统做网址导航站模板
DEDE织梦cms常用的参数标签汇总、以及操作过程中的一些bug问题解决方法,dede网站二开,以下龙腾飞网络科技-小吴在建站实操中笔记记录,织梦dede建站教程保存使用非常方便:
攻城狮与产品喵
2025/03/13
2960
【DEDE二开】如何用织梦DedeCMS网站系统做网址导航站模板
帝国cms调用栏目自定义字段(栏目简介)如何操作
  开源的cms就像一个操作系统,可以满足大部分人的需求,如果你想增加一些特殊的功能,那就二次开发呗,就像APP一样。帝国cms默认的栏目是没有调用栏目自定义字段的,我们可以增加一些概述类的文字,让读
ytkah
2018/03/06
3.5K0
帝国cms调用栏目自定义字段(栏目简介)如何操作
如何三分钟为小程序打造管理后台
盛瀚钦,沪江 CCtalk 前端开发工程师,Taro 框架的 issue 维护志愿者,腾讯云云开发布道师,主要侧重于前端 UI 编写和团队文档建设。
腾讯云开发TCB
2020/06/03
1.1K0
CloudBase CMS 2.0 焕新升级,从「心」出发!
CloudBase CMS 是一个基于云开发 + Node + React 构建的 Headless CMS 系统。不久前,我们开源发布了 CloudBase CMS(内容管理系统)1.0,收获了许多用户的喜爱。同时,我们也收到了用户的热心反馈,了解到 CloudBase CMS 还存在一些不足之处,由此,我们决定持续打磨、优化 CloudBase CMS,来为广大用户提供更好的内容管理解决方案。 经过长时间的充分准备和开源团队的共同努力,CloudBase CMS 2.0 迎来了全新升级,正式与
腾讯云开发TCB
2020/09/28
1.3K0
吃了这些云开发数据集和模型,让AI教你做分析
开发者可以通过云数据库的数据模型能力更方便的定义数据结构,自动进行数据校验,自动处理关联关系。同时通过数据模型的数据管理能力,更方便的进行后台数据管理、查询。也能基于数据模型运维分析、AI智能化等能力,帮助各类用户实现数据据管理和分析。
腾讯云开发TCB
2024/08/08
2330
吃了这些云开发数据集和模型,让AI教你做分析
无头 CMS 深度剖析:架构、优势与未来发展趋势
在数字内容如潮水般涌现的当下,内容管理系统(CMS)成为了企业驾驭内容洪流的关键工具。而在众多 CMS 类型中,无头 CMS 正以其独特魅力,逐渐崭露头角,成为行业焦点。它为何能吸引众多企业的目光?其架构有何独特之处?未来又将如何发展?让我们一同深入探寻无头 CMS 的奥秘。
KATSU
2025/05/15
1120
无头 CMS 深度剖析:架构、优势与未来发展趋势
CloudBase CMS + Next.js:轻松构建一个内容丰富的站点
试想一下,如果你现在要为你自己或者你所在的组织创建一个强内容的站点,同时要求好的 SEO(搜素引擎优化),比如博客,你会怎么做呢?
腾讯云开发TCB
2021/04/26
2.6K0
CloudBase CMS + Next.js:轻松构建一个内容丰富的站点
MassCMS VS Strapi比较
Strapi 是一个无头 CMS,用于开发网站、移动应用程序、电子商务网站和 API。它允许在不了解后端或数据库的情况下创建 API。系统根据内容模型自动构建 API,使用 Strapi 示例可以轻松查看 CMS 中的数据。
KATSU
2023/09/07
9430
MassCMS VS Strapi比较
开源一个小程序,还教部署那种。
之前有给小伙伴们承诺过一个开源一个小程序,今天开始开源一个部署上线的打卡小程序:一见打卡。
月小水长
2019/08/28
1.8K0
开源一个小程序,还教部署那种。
CMS介绍、优点、特性以及CMS模板开发示例
在阅读这篇文章前,推荐一篇“好”文章:MySQL 数据库引擎解析:特性、应用场景与选择策略原创
奇迹_fly
2024/11/28
3700
MySql笔记
又很久没有写博客了 这篇笔记是边学边记的 当时比较仓促 所以有的地方可能会比较乱 但是大概的方法写的还是比较清楚了 等有时间回头再好好整理一下这篇文章。
用户2700375
2022/06/09
6770
MySql笔记
我们为什么推出数据模型
众所周知,云开发提供的NoSQL数据库以其灵活性和易用性受到开发者的青睐,但其非结构化的数据存储方式也给开发者带来了挑战数据结构的频繁变动、前后端的数据校验逻辑编写以及数据统计分析的需求,都增加了开发的复杂度和工作量。
腾讯云开发TCB
2024/08/26
1490
我们为什么推出数据模型
推荐阅读
相关推荐
CMS 进化之路:从当下变革到未来蓝图
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验