跳到内容
English
全部课程
CHAPTER 0510 分钟

数据

把信息留下来,再准确地找回来

一个清单、一本通讯录、一家店的订单,都在处理数据。先看清数据的形状和操作方式,再考虑数据库名称,能让你的需求更具体,也更容易验证。

读完你能
分清文件、浏览器存储与数据库的使用边界
用字段、记录和 CRUD 描述功能
理解索引的作用与成本
05.01

从文件开始:TXT、CSV 和 JSON

文本文件可以直接保存一段文字;CSV 适合表示行列式数据;JSON 用对象、数组等结构组织信息,常用于程序间交换数据。它们是数据的表达方式,不会自动提供完整的数据管理功能。

浏览器本地存储也能保留信息,但它通常只属于当前浏览器和网站来源,不会自动跨设备同步,清理浏览器数据后也可能消失。

放到生活里

导出的任务 JSON 可以包含标题和完成状态。它便于备份或传递,但同时有多人编辑时,还需要额外机制解决冲突。

带走这一点 · 说“保存数据”时,还要说明位置、生命周期和谁能访问。

文件 fileCSVJSONlocalStorage数据格式
05.02

数据库:负责管理与查询的系统

数据库系统提供组织、查询和更新数据的能力。关系型数据库中常见表、行和列:一行是一条记录,一列是某个字段。约束可以帮助防止某些无效数据进入。

数据库不是一用了就更快,也不等于“放到云上”。小项目可能从文件开始;随着查询、并发、权限和一致性需求增加,才更需要专门的数据管理。

放到生活里

任务表可以有 id、title、done、created_at。更新标题时使用稳定 id,避免两条同名任务被误认为同一条。

带走这一点 · 先画出数据字段和关系,再让 AI 选择合适的存储方案。

数据库 database表 table记录 row字段 column唯一标识 id
05.03

增删改查:把功能变成数据操作

Create、Read、Update、Delete 常缩写为 CRUD,分别对应创建、读取、更新和删除。界面按钮的背后通常能映射到这些操作。

例如“完成任务”通常是把 done 改为 true,而不是删除任务;“只看未完成”通常是筛选读取,而不是把已完成记录清空。操作含义不同,结果也不同。

放到生活里

你筛选出未完成任务,再取消筛选,已完成任务应该重新可见。如果它们真的被删除了,程序就做错了。

带走这一点 · 把筛选、修改和删除分清,是准确描述需求的一部分。

CRUD增删改查筛选 filter更新 update
动手验证原理

你的第一张数据表

在表格上执行增、查、改、删。切换“只看未完成”,观察筛选与删除为什么不同。

试一试 · 分别完成添加、筛选、修改完成状态和删除,四个操作会依次点亮。
CREATE READ UPDATE DELETE
idtitledone操作
1认识数据
2读懂一个概念

保存着: 2 · 当前显示: 2. 取消筛选,会重新显示仍然存在的记录。

表格在本地内存中运行,用于理解数据操作,不连接数据库。

05.04

关系表与其他组织方式

关系型数据库强调表、关系和约束,SQL 是常见查询语言。NoSQL 是一组其他数据库方式的统称,可能使用文档、键值、图等模型,并不只指“形状随意的文档”。

不同模型都需要认真设计数据和查询。灵活不是没有规则,使用表格也不意味着所有内容都必须僵硬地塞成一张表。需要考虑的是关系、查询方式和修改约束。

放到生活里

用户和任务可以分为两张表,通过 user_id 关联。一个用户有很多任务,但每条任务的归属要清楚。

带走这一点 · 选数据库之前,先说明“有哪些数据、怎样关联、经常怎么查”。

SQLNoSQL关系型文档数据库键值 key-value
05.05

索引:查得快,也要付出成本

索引是为某种查找维护的辅助结构,像书的目录。它可以减少某些查询需要检查的数据,但要占空间,也会增加写入和维护的工作。

不是每个字段都建索引就最好。应当先知道实际查询,再通过执行计划和测量判断。对小数据集,简单扫描有时已经足够。

放到生活里

常按邮箱查用户,可以考虑邮箱索引;任务只有十条时,先保证功能正确比设计复杂分布式索引更有价值。

带走这一点 · 性能优化需要测量;不要只凭“数据库慢”就堆新技术。

索引 index查询 query执行计划性能 performance
换个情境,你会怎么判断?

你想隐藏已完成的任务,但以后还能查看。应该做什么?

先选一个答案,再看解释。

把知识变成一段有用的需求

写清清单的数据字段、保存范围和过滤行为。

先自己想,再按需打开提示。越往后,描述越完整,验收也越明确。

1 思考方向2 描述框架3 参考提示词
用清单的真实保存行为检查你的数据理解。把它用进项目
让好奇心再走远一点拓展视野

带着本章的背景去问 AI。拓展是选学,不影响继续阅读。

用通讯录解释表、行、列、id 和 CRUD。

参考答案,可以改成你的版本
我正在从零学习计算机与 AI 编程。本章学过:
数据:分清文件、浏览器存储与数据库的使用边界;用字段、记录和 CRUD 描述功能;理解索引的作用与成本

用通讯录解释表、行、列、id 和 CRUD。

请先确认我的理解,一次解释一个小问题,用具体例子并说明比喻的局限。讲完问一道情境题,根据我的回答继续。区分事实、推测和不确定内容;推荐可操作的验证方式。如果涉及具体工具,先确认版本,不要编造功能和资料。

完成这一章

标记各节已读,完成原理实验和情境题后,即可记录本章完成。随时可以直接阅读下一章。

0/5 小节验证一个原理解释一个现象

继续查阅原始资料

正文是入门解释;下面的官方资料供你继续核对和深入。

PostgreSQL · The SQL LanguageMDN · Web Storage API

一台机器的文件和数据库已经能解决很多需求。如果规模继续增长,会发生什么?