01
页面发请求
用户点击登录、发布文章、提交订单,页面会把这些操作发给后端。
我要登录:手机号 138****8888
数据库就是网站和 App 背后的“长期记忆”。用户账号、文章内容、购物车、订单记录、学习进度,都要放在数据库里。
你可以把它理解成一个更专业、更安全、更快的 Excel。它不只是保存数据,还能按条件快速查找、修改、删除,并保证多人同时操作时不容易乱。
先记住这一句
数据库负责长期保存。程序重启、用户关掉页面,数据也不会消失。
数据库负责快速查找。哪怕有几十万条数据,也能很快找到你要的那条。
数据库负责保持可靠。比如付款和生成订单,要么都成功,要么都失败。
STEP 01
用“登录”这个场景看一遍,比背概念更容易懂。
01
用户点击登录、发布文章、提交订单,页面会把这些操作发给后端。
我要登录:手机号 138****8888
02
后端先检查参数、权限和业务规则,再决定要不要去数据库查数据或写数据。
这个手机号有没有注册?密码对不对?
03
数据库负责把用户、文章、订单这些数据长期保存,并在需要时快速找出来。
从 users 表里找到这位用户
04
后端拿到结果后返回给前端,页面再显示“登录成功”或“密码错误”。
登录成功,返回用户信息
关系可以这样记
前端负责“让用户操作”,后端负责“判断能不能做”,数据库负责“把数据保存好、找出来”。数据库通常不直接面对用户,而是由后端去访问它。
STEP 02
不用一开始全学会,先知道它们分别适合干什么。
像 Excel 表格的加强版
最适合用户、订单、课程、文章这类结构清楚的数据。
规矩清楚,数据不容易乱
适合大多数 Web 项目
可以用 SQL 做复杂查询
提醒:新手做网站或管理系统,默认从它开始。
像一堆 JSON 文件
适合字段经常变、结构不固定的内容,比如用户画像、配置、日志。
字段灵活,改起来快
前期做原型很省事
很适合存 JSON 风格数据
提醒:灵活也意味着更要自律,不然数据容易越存越乱。
像超快的临时便签
适合存登录状态、验证码、排行榜、热门数据缓存。
读写非常快
适合临时数据和热点数据
常和主数据库搭配使用
提醒:一般不单独当主数据库,项目有性能压力再加。
STEP 03
先把关系型数据库当成 Excel,看懂就不怕了。
users 表
| id 主键 | name 姓名 | email 邮箱 | role 角色 |
|---|---|---|---|
| 1 | 小明 | ming@example.com | 普通用户 |
| 2 | 小红 | hong@example.com | 管理员 |
| 3 | 小李 | li@example.com | 普通用户 |
表:一类东西
users 表专门放用户,orders 表专门放订单,不同类型的数据分开放。
字段:一项属性
name、email、role 都是字段,决定每条数据要保存哪些信息。
记录:一条完整数据
表里的每一行就是一条记录,比如 id 为 1 的用户“小明”。
STEP 04
这些词不用死记,知道它们解决什么问题就够了。
一类数据放一张表
比如用户放 users 表,订单放 orders 表,文章放 posts 表。
表里的每一列
比如用户表里的 name、email、password,都是字段。
表里的每一行
一行就是一条完整数据,比如一个用户、一篇文章、一个订单。
每条数据的唯一编号
通常叫 id。它像身份证号,保证数据库能准确找到某一条记录。
两张表之间的连接线
订单表里有 user_id,就能知道这个订单属于哪个用户。
给数据库做目录
经常按 email、手机号、订单号查询,就给这些字段加索引,查询会快很多。
SQL 是什么?
SQL 是和关系型数据库说话的语言。比如“查出所有管理员用户”“把小明的邮箱改掉”“新增一条订单”。现在你可以先让 AI 帮你写 SQL,重点是看懂它大概在查哪张表、用什么条件。
ORM 是什么?
ORM 像翻译官,让你用 JavaScript、TypeScript、Python 去操作数据库,它背后再自动翻译成 SQL。比如 Prisma、SQLAlchemy。新手写项目时,ORM 通常比直接手写 SQL 更顺手。
STEP 05
你会经常看到 CRUD,它其实就是增删改查。
Create
注册用户、发布文章、创建订单
Read
查看个人资料、文章列表、订单详情
Update
改昵称、改密码、更新订单状态
Delete
删除草稿、取消收藏、移除记录
STEP 06
按场景选,不需要陷入“哪个最好”的争论。
第一个 Web 项目 / 管理后台
教程最多、业务场景覆盖广,搭配 Prisma 很适合新手。
不想本地安装,想快速上线
它本质是托管 PostgreSQL,还送管理后台、登录、文件存储等能力。
只是本地练习或小工具
数据库就是一个文件,不用装服务,配置最少。
字段经常变,结构很灵活
文档型数据库更像直接存 JSON,迭代很快。
需要验证码、登录状态、缓存
速度快,适合临时数据。它是配角,通常跟主数据库一起用。
Node.js / TypeScript 后端
类型提示好,迁移方便,当前这个项目后端也在使用 Prisma。
一句话结论
新手做 Web 项目,默认选 MySQL 或 PostgreSQL; 想省部署和管理成本,用 Supabase; 本地小项目用 SQLite; 需要缓存和临时状态时,再加 Redis。