数据库入门:写给非技术创始人
数据库入门:只要你会看电子表格,你就已经懂了表。再加上决定你的SaaS成败的那一条设计规则,非技术创始人读完这一篇,就能真正看懂数据库,一篇读懂。
数据库入门:你其实早就懂了,只是自己还不知道。数据库就是一张拥有超能力的电子表格:和你在Google表格里用的行与列一样,却能同时服务成千上万的用户、自动执行规则,并在数十亿条记录间瞬间回答问题。对SaaS创始人来说,它是你产品中最重要的一层。
在SaaS如何运作的餐厅模型里,数据库就是食谱和库存——是唯一能记住任何东西的地方。下面就是你需要了解的关于它的一切,从你早已熟悉的电子表格讲起。
数据库入门:电子表格与数据库,真正的区别在哪里
想象在Google表格里追踪客户:每位客户一行,列有姓名、邮箱、套餐和注册日期。这张表本质上就是一张数据库表。那为什么不直接用电子表格来运行你的SaaS呢?
| 电子表格 | 数据库 | |
|---|---|---|
| 谁来编辑 | (基本上)一次一个人 | 成千上万的用户同时操作 |
| 数据如何进入 | 手工录入 | 通过代码自动录入 |
| 规则 | 什么都不强制——错别字、重复、不一致 | 自动执行严格的规则 |
| 容量上限 | 大约一百万行 | 可达数十亿行 |
| 速度 | 公式重算很慢 | 在海量数据上瞬间查询 |
| 完整性 | 听天由命 | 有保证 |
简单说:电子表格是便笺本,数据库是车管所的档案系统——井井有条、可搜索、永久保存,并且为规模而生。
表、行和列——基本词汇
三个词就涵盖了你将遇到的大多数数据库对话:
表就像电子表格里的一个标签页,存放一种类型的事物。你的产品可能有一张存放注册者的用户表、一张产品表、一张订单表、一张付款表。每种实体一张表——这就是规则。
行是该事物的单个实例。在用户表中,每一行就是一位用户。开发者把行叫作“记录”。
列是关于该事物的一项信息——邮箱、注册日期、套餐。每一列都声明自己存放的数据类型:文本、整数、小数、真/假值、日期、唯一标识符。数据库就是这样自动执行规则的——它会直接拒绝把“hello”这个词存进数字列。而你的电子表格会欣然接受,然后悄悄搞坏你的报表。
键:表与表如何相互连接
这就是数据库真正强大的地方——也是电子表格类比的终点。
每张表都有一个主键:一个通常叫作id的列,唯一标识每一行。它必须唯一、不能为空、永不改变。把它想成每条记录的指纹。
外键是一张表中指向另一张表主键的列。你的订单表不会在每笔订单上重复客户的姓名和邮箱——它只存一个指回用户表的user_id。这个指针建立了一种关系:一位用户,多笔订单。现在你可以问“显示这位客户下过的所有订单”,数据库会瞬间顺着连接找到。
关系就是你不必到处复制数据的原因。如果客户的邮箱存在每一行订单里,修改它就得更新每一笔订单——而这些副本必然会逐渐失去同步。每个事实只存一次,用键把它们连起来,真相就只存在一处。
唯一的设计规则:结构决定你的产品能做什么
这是创始人层面的洞察。想想两种存放订阅的方式。糟糕的做法,是把一切塞进用户那一行的一个文本列里:“Pro套餐,2025-01-15到期,已付99欧元”。看起来没问题——直到你提出一个问题。我们有多少Pro用户?下个月谁需要续订?我们的平均订阅价格是多少?这些问题你一个都答不了,因为事实被困在一团文本里。
好的做法,是把订阅放进它们自己的表:套餐、价格和到期日各占一个有类型的列,并通过外键与用户相连。信息相同。现在你可以查询任何东西。
这就是浓缩版的模式:你的数据结构决定你产品的能力。这也是为什么AI时代创始人的工作方法是先设计数据库,让其他一切随之而来。
12 周企业职业生涯从来都不是计划申请加入 Solopreneur Accelerator。立即申请 →你的数据比你的代码活得更久
构建产品的现实是:前端你会重写三遍,后端逻辑会不断演进——但你的数据库结构是永久的。Facebook至今仍保有2004年的数据;它的前端已经变了上百次,而核心的用户表和帖子表依然相似。
这也是为什么数据库的改动会带来代码改动所没有的痛。加一列很容易。一旦某列存了真实的客户数据,再改变它的类型就很难——每条现有记录都要转换,现有代码也可能出错。删除一个存有数据的列更可怕,因为那些数据将永远消失。创建数据库结构之前要多想想;之后再改,才是昂贵的部分。
而这,比任何理由都更能说明:为什么不该在没有数据模型的情况下,指示AI“直接做出来”。AI写得不好的代码,几分钟就能重新生成。而一个意外生长出来的数据结构——这正是氛围编程陷阱的核心失败模式——会伴随你产品的整个生命周期。
你的数据库专门为SaaS做的两件事
它让你客户的数据彼此隔离。SaaS用一个应用服务许多公司,所以每张表都带有租户标识,数据库本身强制保证A公司永远看不到B公司的行——就像一栋公寓楼:共享基础设施,私密空间各自独立。这个机制叫行级安全,值得单独解释一番。
它负责任地记忆。设计良好的产品几乎从不真正删除任何东西——它们只是把记录标记为已删除,这样错误可以撤销,历史得以保留。每张表都记录每一行的创建时间和最后更新时间。这些小习惯,决定了你的产品是可以调试和审计的,还是对你束手无策的。
好消息是:这些你都不用手工去搭。现代工具会给你一个内置身份验证和安全机制的专业级数据库——它是构建SaaS的真实成本里的一个条目,而不是一次招聘决策。你的工作是工具做不了的那部分:决定表是什么。
本书The Solopreneur RevolutionLuis Gonçalves 讲述如何在不辞职的情况下用 AI 打造独立创业者事业。获取本书 →常见问题
用大白话说,数据库是什么?
是为你产品数据准备的结构化、永久性存储——就像电子表格,但能同时服务成千上万的用户、自动执行规则,并在数十亿行之间瞬间回答问题。你的SaaS需要记住的一切都存放在那里。
为什么我不能直接用电子表格运行我的SaaS?
电子表格的上限大约是一百万行,一次只允许一个人编辑,并且什么都不强制——错别字、重复和不一致会悄无声息地渗入。数据库是自动化的、经过校验的,并且为并发访问而生。电子表格用于分析;数据库用于产品。
作为非技术创始人,我需要自己设计数据库吗?
结构由你决定;实现由AI来写。列出你产品中的“事物”——用户、项目、订单——决定你需要了解每种事物的什么信息,以及它们如何关联。这是一道关于你业务的思考题,而不是编程题,也是日后改起来最昂贵的那个决定。
什么是主键和外键?
主键唯一标识表中的每一行——每条记录的指纹。外键是指向另一张表主键的列,建立起“一位用户有多笔订单”之类的关系。键是数据库在不复制事实的前提下把它们连接起来的方式。
你到底被困得有多深?
完成职场窒息指数——这项免费测评告诉你是否已准备好成为独立创业者。