SaaS必备的10张数据库表:数据库蓝图
SaaS必备的10张数据库表:组织、用户、成员、活动日志等一应俱全,外加一条能让AI正确建好全部数据库表的复制粘贴提示词,直接照用即可,省时省力。
SaaS必备的10张数据库表,支撑着90%的商业应用:组织、用户、组织成员、你的核心实体、分类、关系、活动日志、文件、通知和设置。你不需要重新发明数据库——克隆这套结构,改几个名字,然后上线。这里是完整蓝图、各表之间的连接方式,以及能让AI把它们全部建对的复制粘贴提示词。
表并不比结构化的电子表格更可怕:每一行是一件事物(一个任务、一位联系人、一张发票),每一列是关于这件事物的信息。如果这对你是新知识,先读写给非技术创始人的数据库入门再回来。这篇文章的重点更简单:设计数据库不需要懂数据库。你只需要知道该建哪些表——而每个SaaS的表几乎都一样。
SaaS必备的10张数据库表
糟糕的数据库设计会在你规模扩大时让应用崩溃。良好的数据库设计则让应用自然运转。地基如下:
| # | 表 | 存储内容 | 为什么需要 |
|---|---|---|---|
| 1 | 组织(Organizations) | 每个使用你应用的企业——名称、设置、订阅级别、状态 | 多租户:每个客户就是一个组织 |
| 2 | 用户(Users) | 每个能登录的人——邮箱、姓名、头像(密码由Supabase处理) | 身份验证:谁能访问应用 |
| 3 | 组织成员(Organization members) | 哪些用户属于哪些组织,以及他们的角色(所有者、管理员、成员、查看者) | 一个用户可以属于多个组织 |
| 4 | 你的核心实体 | 你的应用所管理的对象:任务、联系人、发票、预约、产品 | 这就是你的产品——其他一切都为它服务 |
| 5 | 分类 / 标签 | 将核心实体分组的方式,带名称和颜色 | 用户需要整理和筛选内容 |
| 6 | 关系 | 多对多连接:任务分配给多个用户,用户加入多个团队 | 现实中的大多数关系不是一对一的 |
| 7 | 活动日志 | 谁在何时对哪条记录做了什么 | 审计追踪、动态信息流、调试、合规 |
| 8 | 文件 | 上传文件的引用——名称、URL、大小、上传者、附属于什么 | 几乎每个应用都允许用户上传东西 |
| 9 | 通知 | 给用户的提醒——消息、类型、已读状态、链接 | 用户需要知道发生了什么 |
| 10 | 设置 | 组织设置(时区、货币)和用户偏好(主题、语言) | 每个用户都想自定义自己的体验 |
注意其中有多少与你的点子无关。你90%的数据库与其他商业应用相同;只有10%是你独有的业务逻辑。从那90%开始,构建那10%,发布你的产品。
本书The Solopreneur RevolutionLuis Gonçalves 讲述如何在不辞职的情况下用 AI 打造独立创业者事业。获取本书 →这些表如何连接
想象一栋公寓楼。组织是楼宇登记册——租户名单。用户是住户。组织成员是公寓名录,写明约翰住5号房,莎拉住12号房。从这里开始,链条顺理成章:一个组织拥有许多你的核心实体(任务、联系人、发票),每个实体都可以附加文件,每次操作都会生成一条活动日志,重要事件会产生通知。
举个具体例子——一个简单的CRM需要:组织(你的客户)、用户(登录的人)、组织成员(约翰在一家公司,莎拉在另一家)、联系人(CRM记录)、联系人标签(热线索、冷线索、客户)、活动日志(每次互动)、文件(附在联系人上的文档)、通知(联系人有动作时的提醒)以及设置(每个组织的偏好)。就这些。九张表。一个完整的CRM。
这也是为什么在构建界面之前先设计表效果这么好——这正是数据库优先开发的全部论点。界面每周都在变,这套结构几乎不变。
上线时不需要的表
和你要建的十张表同样重要的,是你跳过的那些。等真正需要时再添加:
- 计费与订阅——准备好收费时再加
- 团队——组织变大时再加
- 集成——连接其他工具时再加
- 报表——用户需要分析时再加
- Webhooks——构建API时再加
- 审计日志——出于合规和安全要求时再加
规则:从小处开始,需要时再加表。数据库只是整体图景中的一层——每个SaaS都需要的18个系统描绘了其余部分——但表是起点,因为其他一切都建立在它们之上。
一次建好全部10张表的复制粘贴提示词
你不用自己写这些SQL。把蓝图和质量要求放进一条提示词交给AI:
Create these database tables for a multi-tenant [your app type]:
FOUNDATION: 1. organizations (id, name, slug, settings, tier, is_active, created_at, updated_at) · 2. users (handled by Supabase Auth) · 3. organization_members (organization_id, user_id, role)
CORE FEATURE: 4. [your main entity] with organization_id, your specific fields, audit columns
SUPPORTING: 5. categories (for organising [your main entity]) · 6. files (attachments) · 7. activity_log (tracking all actions) · 8. notifications (user alerts) · 9. settings (preferences)
Requirements: every table needs organization_id (except users) · add indexes on all foreign keys · enable Row-Level Security · use soft deletes (deleted_at column) · add audit columns (created_at, created_by, updated_at, updated_by)
Show me the complete SQL migration.
AI会生成这些表,连接正确、支持多租户、可用于生产环境。需求部分不是可有可无的装饰——每张表都带organization_id,加上行级安全(Row-Level Security),才能确保客户A永远看不到客户B的数据。
上线的最低要求
在开始构建功能之前,确认你有:组织表、用户(Supabase已提供)、组织成员、你的核心实体、至少一种整理内容的方式、活动日志和通知。有了这7张最低限度的表,你就可以构建并上线。其余的随成长再加。
大多数创始人花上几周纠结数据库设计,仿佛自己的应用是独一无二的雪花。其实不是——这反而是好消息。地基是个已解决的问题。克隆它,定制那10%,把精力花在只有你能构建的部分上。
12 周企业职业生涯从来都不是计划申请加入 Solopreneur Accelerator。立即申请 →常见问题
上线前真的需要全部10张表吗?
不需要——最低要求是7张:组织、用户、组织成员、你的核心实体、一种整理内容的方式(分类或标签)、活动日志和通知。文件、关系和设置可以随需要它们的功能一起出现。计费、团队、集成、报表和webhooks则更晚。
“多租户”是什么意思,为什么重要?
多租户指许多客户共用一个应用,而每个客户只能看到自己的数据。这就是组织表排在第一位、每张表都带organization_id的原因。配合行级安全,它保证每个客户的记录都留在自己的围墙内——就像一栋楼里的各个公寓。
AI真的能替我设计数据库吗?
能——只要你给它蓝图。粘贴上面的提示词并填入你的核心实体,AI就会生成完整的SQL迁移:表、外键、索引和行级安全。AI做不到的是决定你的核心实体是什么。那是产品决策,不是技术决策。
我的应用的“核心实体”是什么?
你的应用所管理的那一样东西。任务管理器→任务。CRM→联系人。开票→发票。预订→预约。电商→产品。如果你不能用一个词说出它,说明你的产品还没定义得足够清晰——先解决这个问题,再碰数据库。
你到底被困得有多深?
完成职场窒息指数——这项免费测评告诉你是否已准备好成为独立创业者。