最后
正值招聘旺季,很多小伙伴都询问我有没有前端方面的面试题!
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
如上图所示,针对我的个人博客,我做了简单的实体和实体关系设计。
多对多关系
=====
其中文章表article
是核心,考虑到一篇文章可能关联多个分类category
或标签tag
,一个分类或标签下也会有多篇文章,所以我这里设计的都是多对多关系,用到了关系表。
关系表不会涉及很多字段。
主要是关系表中设计的两个外键起到关键作用。
根据这么一张关系表,就能完成多对多的关联关系。
一对多关系
=====
文章下有评论,一篇文章可以有多条评论,文章article
和评论comment
的关系就是一对多的,这个是很好理解的。
对于这种一对多关系,我的设计是在评论表中用一个外键article_id
来实现关联。
要查询某文章下的评论时,就可以依据条件article_id
筛选出对应的评论数据。
SELECT * FROM comments WHERE article_id = 229;
子级关系
====
同样地,一条评论下也会有很多回复,针对回复,我是单独设计了reply
表。comment
和reply
也是一对多的关系,reply
表中有comment_id
外键关联到comment
表。
除了对评论做回复,还可以针对某一条回复做回复,类似于这样:
而这种子级关系,就需要一个parent_id
来做记录,根据parent_id
串起来的关系,在业务侧我们就可以得到一棵回复树。
状态字段
====
很多业务都离不开状态的维护,比如数据的逻辑删除,文章的公开/私密处理,评论/回复的审核机制,这些都需要一些标志位来描述状态,同时提供一些业务接口来维护状态。
小结
==
本文是Vue3+TS+Node打造个人博客(数据库设计篇),主要介绍了我在为博客系统设计数据库时的一些主要思路和关注点,接下来将针对一些具体的业务实现来进行更详细的剖析,敬请期待!
系列文章
====
Vue3+TS+Node打造个人博客系列文章如下,持续更新,欢迎阅读!点赞关注不迷路!😍
- Vue3+TS+Node打造个人博客(总览篇)
- Vue3+TS+Node打造个人博客(数据库设计)
- Vue3+TS+Node打造个人博客(后端架构)
TCP协议
- TCP 和 UDP 的区别?
- TCP 三次握手的过程?
- 为什么是三次而不是两次、四次?
- 三次握手过程中可以携带数据么?
- 说说 TCP 四次挥手的过程
- 为什么是四次挥手而不是三次?
- 半连接队列和 SYN Flood 攻击的关系
- 如何应对 SYN Flood 攻击?
- 介绍一下 TCP 报文头部的字段
- TCP 快速打开的原理(TFO)
- 说说TCP报文中时间戳的作用?
- TCP 的超时重传时间是如何计算的?
- TCP 的流量控制
- TCP 的拥塞控制
- 说说 Nagle 算法和延迟确认?
- 如何理解 TCP 的 keep-alive?
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
浏览器篇
- 浏览器缓存?
- 说一说浏览器的本地存储?各自优劣如何?
- 说一说从输入URL到页面呈现发生了什么?
- 谈谈你对重绘和回流的理解
- XSS攻击
- CSRF攻击
- HTTPS为什么让数据传输更安全?
- 实现事件的防抖和节流?
- 实现图片懒加载?
如何?
- 说一说从输入URL到页面呈现发生了什么?
- 谈谈你对重绘和回流的理解
- XSS攻击
- CSRF攻击
- HTTPS为什么让数据传输更安全?
- 实现事件的防抖和节流?
- 实现图片懒加载?
[外链图片转存中…(img-jfhlMajx-1715865588197)]