Skip to content

第 3 章 数据库:软件的记忆

程序有个天生的毛病:一关掉,脑子里的东西就全没了。可用户第二天回来,凭什么你还记得他是谁、他传过什么文件、他有哪些凭证?答案是:这些东西从来不存在"程序"里,而是存在**数据库(Database)**里——一个专门负责"记住"的软件。

最快的理解方式:数据库像一个极其严谨的 Excel。一张**表(Table)对应 Excel 里的一个工作表;一行(Row)是一条记录,比如一个用户;一列(Column)**是一个属性,比如邮箱、注册时间。我们用的 Supabase,底下就是一个世界上最受欢迎的数据库——Postgres

和数据库说话有专门的语言,叫 SQL。别被吓到,它的核心只有四个动词:查(SELECT)、增(INSERT)、改(UPDATE)、删(DELETE)。比如:

sql
SELECT * FROM users WHERE email = 'dad@example.com';

意思就是:从 users 表里,把邮箱等于这个的行都找出来。你看 Claude Code 写的 SQL,八成都是这四个动词的变体。

那为什么不直接用 Excel 或者一堆文件来存?因为数据库解决了四个 Excel 搞不定的问题:一千个人同时读写不打架;在百万行里瞬间查到你要的那一条;精确控制"谁能看哪些行、谁能改哪些列";以及断电、崩溃也不丢数据。至于 Supabase 是什么:它帮你把 Postgres 托管好,再送你登录系统(Auth)、文件存储和现成的 API——所以 Claude Code 三句话不离它。

顺带认识一个你常见到的词:迁移(Migration)。每次修改表结构——加一列、建一张表——都写成一个脚本保存下来,让数据库的每一步变化都有据可查、可以重放。它相当于"给数据库结构做版本记录"。

关键领悟

你产品里一切"属于用户的东西",几乎都住在数据库里。设计表结构的过程,其实就是想清楚"我的产品到底要记住什么"。

试一试

打开 Supabase 后台的 Table Editor,随便点开一张表,亲手指认一遍:哪是表,哪是行,哪是列。

由 Charles Tao 与 Claude 协作写成——这本身就是这套书讲的工作方式。 · 许可