Vue3+TS+Node打造个人博客(数据库设计)

您的关注意义重大

738884f0eea7dfe2ac1eb5e418ce7856.png

原创@前端司南

本项目代码已开源,具体见:

前端工程:vue3-ts-blog-frontend[1]

后端工程:express-blog-backend[2]

数据库初始化脚本:关注公众号前端司南,回复关键字“博客数据库脚本”,即可获取。

一个博客系统应该有什么功能,相信大家都是非常熟悉的,其核心无非是文章分类创作。而像标签评论留言交流后台管理这些功能,都是锦上添花。

要实现这些功能,最关键的是先梳理各个功能之间的关系。提到关系,自然就会联想到关系型数据库。

fb377a99199fe1278c6c3c35d653e18a.png

在设计数据库前,需要先理清实体和实体之间的联系,这里会用到 E-R 图或者 UML 之类的建模语言来做一个概要设计。

但是从我这种非专业的数据库用户的视角来看,我觉得可以不拘泥于形式,不必局限于 E-R 图或者 UML,你也可以选择用思维导图这类的图形化表述工具。因为这只是一个概要设计阶段。

6985edf4fc5e52e570adc193fcf41f2b.png

如上图所示,针对我的个人博客,我做了简单的实体和实体关系设计。

多对多关系

=====

其中文章表article是核心,考虑到一篇文章可能关联多个分类category或标签tag,一个分类或标签下也会有多篇文章,所以我这里设计的都是多对多关系,用到了关系表。

关系表不会涉及很多字段。

af793391f8d54e2ed353f6729430930b.png

主要是关系表中设计的两个外键起到关键作用。

a81534e7cec9b29a3adb78204d654b64.png

根据这么一张关系表,就能完成多对多的关联关系。

一对多关系

=====

文章下有评论,一篇文章可以有多条评论,文章article和评论comment的关系就是一对多的,这个是很好理解的。

对于这种一对多关系,我的设计是在评论表中用一个外键article_id来实现关联。

ae229f7a1756e172942b0c20df30091e.png

要查询某文章下的评论时,就可以依据条件article_id筛选出对应的评论数据。

SELECT * FROM comments WHERE article_id = 229;

30e6591856d00e5dc1b6d783a75e5124.png

子级关系

====

同样地,一条评论下也会有很多回复,针对回复,我是单独设计了reply表。commentreply也是一对多的关系,reply表中有comment_id外键关联到comment表。

除了对评论做回复,还可以针对某一条回复做回复,类似于这样:

c19c4dfcd5cf8ead51a6a3a17bf4c01a.png

而这种子级关系,就需要一个parent_id来做记录,根据parent_id串起来的关系,在业务侧我们就可以得到一棵回复树。

状态字段

====

很多业务都离不开状态的维护,比如数据的逻辑删除,文章的公开/私密处理,评论/回复的审核机制,这些都需要一些标志位来描述状态,同时提供一些业务接口来维护状态。

817283ebe6562b937c3c845878ef4cb2.png

小结

==

本文是Vue3+TS+Node打造个人博客(数据库设计篇),主要介绍了我在为博客系统设计数据库时的一些主要思路和关注点,接下来将针对一些具体的业务实现来进行更详细的剖析,敬请期待!

系列文章

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

本人分享一下这次字节跳动、美团、头条等大厂的面试真题涉及到的知识点,以及我个人的学习方法、学习路线等,当然也整理了一些学习文档资料出来是附赠给大家的。知识点涉及比较全面,包括但不限于前端基础,HTML,CSS,JavaScript,Vue,ES6,HTTP,浏览器,算法等等

详细大厂面试题答案、学习笔记、学习视频等资料领取,点击资料领取直通车免费领取!

前端视频资料:
限于前端基础,HTML,CSS,JavaScript,Vue,ES6,HTTP,浏览器,算法等等

详细大厂面试题答案、学习笔记、学习视频等资料领取,点击资料领取直通车免费领取!

[外链图片转存中…(img-4WczRZ2S-1713570037004)]

前端视频资料:

  • 21
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要开发一个基于Vue3、TypeScript、Node和MySQL的个人,可以参考以下步骤: 1. 首先,你可以参考中的文章,了解如何使用Vue3和TypeScript搭建前端界面。这篇文章提供了一个非常详细的总览,包括项目的结构和要点。 2. 接下来,你可以在GitHub上找到一个示例项目,该项目是基于Vue3和TypeScript的前端部分。你可以根据该项目的结构和代码实现自己的个人前端。 3. 对于后端部分,你可以使用Node.js和Express框架来搭建一个RESTful API。你可以参考中的示例项目,该项目提供了一个使用Express和MySQL构建的简单后端。你可以根据该项目的结构和代码实现自己的个人后端。 4. 在数据库方面,你可以使用MySQL作为存储数据的后端。你可以根据个人的需求设计数据库表结构,并使用Node.js和MySQL连接库来实现数据的增删改查等操作。 综上所述,你可以通过使用Vue3、TypeScript、Node和MySQL来开发个人。首先搭建前端界面,然后使用Node和Express搭建后端API,并使用MySQL作为数据库存储数据。通过参考、和中的文章和示例项目,你可以更好地理解和实现这个过程。祝你成功!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Vue3+TS+Node打造个人(后端架构)](https://blog.csdn.net/weixin_41196185/article/details/123415200)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值