跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
JavaScriptNode.jsAI大前端

产品经理理解前端后端数据库——用产品语言解析技术架构

前端组件化思维对应 Figma 设计,路由即页面流程图,状态管理当前数据。后端负责执行业务规则,API 定义前后端通信协议。数据库表结构源于数据字段定义,表关系对应 ER 图。通过完整需求数据流串联三者,产品经理可借助技术术语映射快速构建全栈应用,无需深入代码细节即可掌握系统架构。

黑客发布于 2026/2/23更新于 2026/4/255 浏览
产品经理理解前端后端数据库——用产品语言解析技术架构

前言:在动手做大项目之前,先搞清楚全貌

上一篇我们用 AI 做出了第一个页面,体验到了"比画原型还快"的感觉。

但那只是一个单页面——没有页面跳转,没有数据保存,点击提交后数据就不知道去哪了。

真正的产品不是这样的。 真正的产品有多个页面、页面之间能跳转、数据能保存、用户登录后能看到自己的数据……

要做出这样的产品,我们需要理解整个"全栈架构"——前端、后端、数据库这三者是怎么配合工作的。

第 2 篇我们是"初步认识",今天是"深入理解"。 用你熟悉的产品工作场景来类比,保证你看完恍然大悟:"原来是这么回事!"


一、前端深入理解:React 和组件化思维

1.1 为什么要用 React

上一篇我们写的是纯 HTML 页面——所有内容都写在一个文件里。如果项目很小(1-2 个页面),这样没问题。但如果要做一个完整的产品(10+ 个页面),就会遇到麻烦:

问题 1:重复代码太多

每个页面都有顶部导航栏,你要在每个 HTML 文件里复制粘贴同样的导航代码。哪天要改导航的样式,10 个文件都得改一遍。

问题 2:页面跳转要刷新

用户点击导航跳转到另一个页面,整个页面刷新一次——体验不够流畅。

问题 3:数据管理混乱

页面 A 的数据怎么传到页面 B?用 URL 参数?用 localStorage?很快就乱了。

React 就是来解决这些问题的。

1.2 React 的组件化思维——你早就在用了

你在 Figma 里怎么做设计的?

做法一(新手):每个页面都从零开始画,按钮、表单、导航……每个页面重复画一遍。
做法二(高手):把按钮做成组件、表单做成组件、导航做成母版,需要的地方直接拖过来用。
改一个地方,所有用到这个组件的页面自动更新。

React 的思想跟 Figma 组件完全一样。

Figma 的概念React 的对应作用
组件 (Component)组件 (Component)可复用的 UI 模块
母版 (Master Component)父组件被其他组件复用的模板
实例 (Instance)子组件使用组件的地方
组件参数Props传递给组件的配置
嵌套组件组件嵌套组件里包含其他组件

举个例子:

你在做需求管理平台,有个"需求卡片"在多个地方用到:列表页用、看板页用、详情页也用。

Figma 做法:

  • 把卡片做成组件
  • 列表页、看板页、详情页各拖一个实例
  • 修改组件样式,所有实例自动更新

React 做法:

  • 做一个 RequirementCard 组件
  • 列表页、看板页、详情页各引用一次
  • 修改组件代码,所有用到的地方自动更新

是不是一模一样?

你在 Figma 里已经是"组件化设计"的高手了,React 只是把同样的思维搬到了代码里。

1.3 产品经理最容易理解的前端概念

① 路由 (Router) = 你画的页面流程图

你在 PRD 里画过这样的流程图吧:

登录页 → 点击登录 → 主页
主页 → 点击"需求列表" → 列表页
列表页 → 点击某个需求 → 详情页

这就是路由设计。在 React 里:

/login → 登录页组件
/home → 主页组件
/requirements → 列表页组件
/requirements/:id → 详情页组件

你画的页面流程图,开发叫它"路由表"。名字不同,事情一样。

② 状态 (State) = 当前页面的数据

你在标注交互的时候会写:

- 用户输入用户名、密码,点击登录
- 登录成功后,顶部显示"欢迎,{用户名}"
- 用户创建需求后,列表页显示最新的需求

这些"用户名""需求列表"就是状态 (State)——页面当前记住的数据。

③ 事件 (Event) = 用户操作

你在交互说明里写:

- 点击"提交"按钮 → 验证表单 → 提交数据
- 鼠标悬停在按钮上 → 改变背景色
- 输入框失焦 → 触发格式校验

这些就是事件——用户的操作触发的动作。


二、后端深入理解:业务规则的执行者

2.1 后端做了什么——你写的业务规则在这里执行

看一个你写过的业务规则:

需求创建规则:
1. 标题不能为空,不能超过 100 字
2. 优先级必须选择(P0/P1/P2/P3 之一)
3. 创建时,状态默认为"待评审"
4. 自动记录创建时间和创建人
5. 只有登录用户才能创建需求
6. 创建成功后,通知相关人员

这些规则在哪里执行?——后端。

前端可以做一些基础验证(比如不能为空),但真正的业务逻辑必须在后端:

业务规则为什么在后端做
标题不能重复需要查询数据库,前端不知道已有哪些标题
只有登录用户能创建需要验证登录状态,前端可以被绕过
创建时自动记录创建人和时间必须用服务器时间,不能信任前端传的时间
通知相关人员发送邮件/推送,前端做不了

你在 PRD 里写的每一条"业务规则",都会变成后端的一段代码。

2.2 API 就是你写的"接口文档"

你肯定写过或看过这样的接口文档:

接口名称:创建需求
请求方式:POST
请求地址:/api/requirements
请求参数:
- title (string, 必填): 需求标题
- description (string, 必填): 详细描述
- priority (string, 必填): 优先级 (P0/P1/P2/P3)
- type (string, 选填): 需求类型
返回结果:
成功:{
  "code": 200,
  "message": "创建成功",
  "data": {
    "id": 123,
    "title": "...",
    "status": "待评审",
    "createdAt": "2024-01-01 10:00:00"
  }
}
失败:{
  "code": 400,
  "message": "标题不能为空"
}

这就是一个 API 的完整定义。 你在写接口文档的时候,就是在做 API 设计。

前端根据这个文档发送请求,后端根据这个文档处理请求。

产品经理 → 技术的完美对应:

你在 PRD 里写的技术术语
'用户提交表单'POST 请求
'获取需求列表'GET 请求
'更新需求状态'PUT/PATCH 请求
'删除需求'DELETE 请求
'请求参数'Request Body / Query Params
'返回结果'Response

三、数据库深入理解:你一直在做"数据库设计"

3.1 数据表设计 = 你定义的数据字段

回忆一下你在 PRD 里怎么定义数据的:

需求数据结构:
基本信息:
- 需求 ID (自动生成)
- 需求标题 (文本,必填,最多 100 字)
- 详细描述 (富文本,必填)
- 优先级 (枚举:P0/P1/P2/P3)
- 需求类型 (枚举:新功能/优化/Bug 修复/其他)
- 状态 (枚举:待评审/开发中/测试中/已完成/已关闭)
关联信息:
- 创建人 (关联用户表)
- 负责人 (关联用户表,选填)
- 相关标签 (多个标签)
时间信息:
- 创建时间 (自动记录)
- 更新时间 (自动记录)
- 期望完成时间 (选填)

恭喜,你刚刚完成了一个数据库表的设计。

开发拿到这个,会在数据库里建一张 requirements 表:

字段名类型说明
idINTEGER主键,自动递增
titleVARCHAR(100)标题
descriptionTEXT描述
priorityENUMP0/P1/P2/P3
typeENUM类型
statusENUM状态
creator_idINTEGER创建人 ID,外键关联 users 表
assignee_idINTEGER负责人 ID
created_atDATETIME创建时间
updated_atDATETIME更新时间

你定义字段的时候,就是在做数据库设计。 只是名字不一样罢了。

3.2 表关系 = 你画的 ER 图

你在 PRD 里会写这些关系:

- 一个用户可以创建多个需求
- 一个需求只有一个创建人
- 一个需求可以有多条评论
- 一条评论属于一个需求
- 一个需求可以关联多个标签
- 一个标签可以被多个需求使用

这就是数据库的"表关系":

你的描述数据库术语关系类型
一个用户创建多个需求users ← requirements一对多
一个需求有多条评论requirements ← comments一对多
一个需求有多个标签requirements ↔ tags多对多

如果你画过 ER 图(实体关系图),那你已经是数据库设计师了。


四、把它们串起来:一个完整需求的数据流

现在我们把前端、后端、数据库串起来,看一个完整的流程——用户创建一个需求。

完整数据流
【步骤 1】用户在前端操作 → 打开"创建需求"页面 → 填写标题、描述、优先级等信息 → 点击"提交"按钮
【步骤 2】前端验证 → 检查必填项是否填写 → 检查格式是否正确(标题长度、描述长度等) → 验证通过,准备发送请求
【步骤 3】前端发送 API 请求 → 调用 POST /api/requirements → 把表单数据打包成 JSON 格式 → 发送给后端服务器
【步骤 4】后端接收并处理 → 接收到请求数据 → 验证用户是否登录(检查 Token) → 再次验证数据格式(不信任前端) → 检查标题是否重复(查询数据库) → 填充默认值(状态=待评审,创建时间=现在)
【步骤 5】后端操作数据库 → 执行 SQL:INSERT INTO requirements (...) → 数据库保存这条需求记录 → 数据库返回新记录的 ID
【步骤 6】后端返回结果 → 封装返回数据:{code: 200, message: "创建成功", data: {...}} → 发送回前端
【步骤 7】前端展示结果 → 收到成功响应 → 显示"创建成功"提示 → 跳转到需求列表页 或 详情页 → 列表页重新请求数据,新需求出现在列表里
用图表展示
┌─────────────────────────────────────────────────────┐
│ 用户 (在浏览器里) │
│ 输入数据、点击按钮 │
└───────────────────┬─────────────────────────────────┘
│
┌─────────▼──────────┐
│ 前端 (React) │
│ 表单验证 + UI 展示 │
└─────────┬──────────┘
│ HTTP Request (API 调用)
│ POST /api/requirements
│ Body: { title, description, ... }
│
┌─────────▼──────────┐
│ 后端 (Node.js) │
│ 业务逻辑 + 权限验证 │
└─────────┬──────────┘
│ SQL Query
│ INSERT INTO requirements ...
│
┌─────────▼──────────┐
│ 数据库 (SQLite) │
│ 永久保存数据 │
└─────────┬──────────┘
│ 返回新记录 ID
│
┌─────────▼──────────┐
│ 后端 (Node.js) │
│ 封装返回结果 │
└─────────┬──────────┘
│ HTTP Response
│ { code: 200, data: {...} }
│
┌─────────▼──────────┐
│ 前端 (React) │
│ 更新 UI、显示提示 │
└─────────┬──────────┘
│
┌───────────────────▼─────────────────────────────────┐
│ 用户 (在浏览器里) │
│ 看到"创建成功",列表更新了 │
└─────────────────────────────────────────────────────┘

看懂了吗? 前端、后端、数据库各司其职:

  • 前端:用户看到什么、怎么交互
  • 后端:业务规则、权限控制
  • 数据库:数据存储

五、产品经理 ↔ 技术概念完整映射表

让我们做一个终极对照——你在产品工作中做的每一件事,在技术上叫什么:

产品工作技术概念一句话理解
画页面原型前端 UI 设计用户看到的界面
做 Figma 组件React 组件可复用的 UI 模块
画页面跳转流程路由设计页面之间怎么切换
标注交互行为事件处理用户操作触发什么
定义数据字段数据库表设计数据存什么、怎么存
画 ER 图数据库关系设计表之间的关联
写业务规则后端逻辑系统按什么规则处理数据
写接口文档API 设计前后端怎么通信
定义角色权限权限系统谁能干什么
定义状态流转状态机数据状态怎么变化
写操作日志需求审计日志记录谁做了什么

惊不惊喜?你一直在做"技术设计",只是用的是产品语言。


六、总结与下期预告

🎯 本篇核心要点

1. React 的组件化 = Figma 的组件。 你在 Figma 里用组件、母版、实例的思维,React 完全一样。你已经是"组件化思维"的高手了。

2. 你一直在做数据库设计。 你定义的数据字段就是数据库表结构,你画的 ER 图就是表关系设计。名字不同,事情一样。

3. API 就是你的接口文档。 你写的接口文档就是 API 定义——请求什么、参数是什么、返回什么。

4. 业务规则 = 后端逻辑。 你写的"业务规则"会变成后端代码——验证、计算、存储、通知……

📌 记住这句话

你不需要学技术概念,你只需要知道:你做的产品设计,在技术世界里叫什么名字。

📣 下期预告

第 7 篇:《像写 PRD 一样写需求——让 AI 精准理解你要什么》

理解了技术全貌,下一篇我们要正式启动"需求管理平台"项目了。

第一步就是写需求——但不是给人看的 PRD,而是给 AI 看的"AI 可执行需求文档"。

我会教你一套模板,把你的产品需求翻译成 AI 能精准执行的格式。用这个模板,AI 给你的代码质量会提升一个档次。

目录

  1. 一、前端深入理解:React 和组件化思维
  2. 1.1 为什么要用 React
  3. 1.2 React 的组件化思维——你早就在用了
  4. 1.3 产品经理最容易理解的前端概念
  5. 二、后端深入理解:业务规则的执行者
  6. 2.1 后端做了什么——你写的业务规则在这里执行
  7. 2.2 API 就是你写的"接口文档"
  8. 三、数据库深入理解:你一直在做"数据库设计"
  9. 3.1 数据表设计 = 你定义的数据字段
  10. 3.2 表关系 = 你画的 ER 图
  11. 四、把它们串起来:一个完整需求的数据流
  12. 完整数据流
  13. 用图表展示
  14. 五、产品经理 ↔ 技术概念完整映射表
  15. 六、总结与下期预告
  16. 🎯 本篇核心要点
  17. 📌 记住这句话
  18. 📣 下期预告
  • 💰 8折买阿里云服务器限时8折了解详情
  • 💰 8折买阿里云服务器限时8折购买
  • 🦞 5分钟部署阿里云小龙虾了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • AI 大模型开发指南:核心技术与实践路径
  • Android Framework 开发价值与进阶路径深度解析
  • Flutter 底部导航与顶部选项卡多页切换实战
  • 字节 Seedance 2.0 使用指南:免费渠道与额度策略详解
  • Flutter 基础组件:BottomNavigationBar 与 TabBar 多页切换及鸿蒙适配
  • OpenClaw 对接飞书机器人:插件安装与回调配置踩坑指南
  • 哈希表加速图像检索:基于万物识别的快速匹配实现
  • Spring 事务与传播机制详解
  • MySQL 表约束实战:非空、主键与外键的作用解析
  • Qwen3-TTS 与 Whisper ASR 构建双向语音对话系统
  • OpenClaw 多端交互实测指南:Web、TUI 与钉钉集成配置
  • Flutter WebView 在 iOS 18 上点击失效的原因与临时方案
  • Unsloth 模型兼容性详解:Llama、Qwen、Gemma 全支持
  • Spring Cloud Gateway 自定义过滤器详解
  • 如何在机器人平台上微调与部署 OpenVLA 模型
  • ASP.NET Core WebAPI 项目核心配置项详解
  • Java+YOLO 推理延迟从 500ms 降至 20ms:JDK 26 虚拟线程与 Vector API 实战
  • 基于 LiveKit 的 WebRTC 音视频通话集成指南(支持 iOS/Android)
  • LLM 大模型入门:技术原理与实战应用指南
  • Coze AI 应用开发:从智能体构建到 Web 部署实战

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online