← 术语图鉴

数据库

Database · 也叫 DB / Postgres / SQLite / 数据表

专门用来长期保存数据的地方:账号、订单、进度、日志,程序重启了也还在。

你可能会说:

  • “用户注册的账号存在哪里?”
  • “AI 给我接了个 SQLite,上线以后数据会不会丢?”

它是什么

程序运行时的数据放在内存里,进程一重启就没了。需要长期保存的东西,要写进数据库。常见的有 Postgres、MySQL 这类独立运行的数据库服务,也有 SQLite 这种直接存成一个文件的轻量数据库。

数据库放在哪很重要。存成文件的 SQLite 用在自己电脑上很方便,可很多托管平台的容器每次部署都会换一台新的,文件跟着就没了;这时要用平台提供的数据库服务,或者挂载一块持久的磁盘。

数据库通常只让后端访问:连接地址和密码放在后端的环境变量里,前端不直接连。数据库文件也不该提交进代码仓库。

打个比方

像餐厅的仓库和账本:后厨做菜要从这里取原料、在这里记账。厨师换了班,仓库里的东西和账本上的数不会跟着消失。

在这个网站里

这个网站没有数据库:文章和课程都是仓库里的文件,构建时直接变成网页。兄弟项目 E2E Review 用的是 Railway 上的 Postgres,存账号、导师对话、学习进度和用量日志五张表;它早期用过 SQLite,仓库里至今还留着两个数据库临时文件(第 9 课)。

容易搞混的地方

常见误解

数据存在服务器上就不会丢

正确理解

要看存在哪:容器里的文件可能随下一次部署消失,只有真正的数据库服务或持久磁盘才靠得住。还要有备份。

你可以这样告诉 AI

复制下面这段,贴给你的 AI

这个项目有哪些数据需要长期保存?分别存在哪里、重新部署或重启后会不会丢?数据库的连接信息放在哪,有没有备份?

先知道

  • 后端——跑在服务器上、访客看不到的那部分程序:处理登录、读写数据、调用需要保密的接口。

接着看

  • 接口——程序和程序之间约定好的说话方式:往哪个地址、用什么格式问,对方就按什么格式答。

在这些课里出现