📄 一句话概括
WordPress=全世界用得最多的「数据库活教材」:一个博客系统,背后就是十几张 MySQL 表——装一次它,就把「应用+数据库」的全景看完了。
📝 本节和前面几节的关系
8-1 讲了「客户端进门」,本节看一个真实应用怎么住进来:WordPress 是「应用在数据库之上生长」的标本——你发一篇博客,就是一条 INSERT;首页显示文章,就是一条 SELECT+JOIN。第五章书评网站的设计图,在 WordPress 里活生生跑着。
一、WordPress 与数据库的关系
- 程序(PHP)+ 数据库(MySQL)=博客系统:程序负责界面与逻辑,数据全存 MySQL
- 安装时要填的还是那四要素(8-1):主机、库名、用户、密码
- 一套代码可以服务千万个博客:每个博客一个库(或用前缀区分),程序相同、数据不同——「应用与数据分离」的最佳注脚
二、它的表就是一本教科书
| 表 | 存什么 | 对应本课知识 |
|---|---|---|
wp_posts |
文章、页面 | 3-5 建表、4-1 类型 |
wp_users |
用户账号 | 4-12 主键、6-8 密码哈希 |
wp_comments |
评论(挂在文章上) | 4-13 外键思想 |
wp_options |
站点设置 | 键值对(2-6 的现实版) |
发文章=wp_posts 加一行;收评论=wp_comments 加一行并指向某篇文章——第五章的多对多/一对多设计在成熟产品里随处可见。
三、动手 Demo:给 WordPress 的文章表「考古」
-- 模拟 wp_posts 的骨架(简化版)
CREATE TABLE wp_posts (
id INTEGER PRIMARY KEY, -- 主键(4-12)
author_id INTEGER, -- 指向 wp_users(外键思想 4-13)
title TEXT NOT NULL, -- 4-9 非空约束
content TEXT,
status TEXT DEFAULT 'draft', -- 4-7 默认值:草稿
published_at TEXT
);
-- 你点「发布」,WordPress 干的事:
INSERT INTO wp_posts (author_id, title, content, status, published_at)
VALUES (1, '我的第一篇博客', '大家好!', 'publish', datetime('now'));
-- 首页显示已发布文章,WordPress 干的事:
SELECT id, title FROM wp_posts
WHERE status = 'publish' ORDER BY published_at DESC;
【准备块】在线 SQLite 运行器即可;每写一句都对照「这是界面上哪个按钮」。
四、30 秒实验
去玩一下任何博客/公众号后台:点「发布」→ 数据库里多一行;改标题 → UPDATE 一行。每个你点过的按钮,都是一条 SQL 的化身——从此看应用多一层透视眼。
五、常见误区
- 「WordPress 只是个写博客的」:它是「应用程序如何组织数据库表」的公开课——表命名前缀、设置键值对、用户体系都值得抄
- 「应用升级与数据库无关」:WordPress 升级常带表结构变更(加列、加索引)——这正是 6-9 版本升级纪律的用武之地
- 「数据库慢是数据库的事」:WordPress 卡顿常源于缺索引的查询——7-6/7-7 在真实应用里的映射
自测三问
1. WordPress 的程序与数据库各管什么?(程序管界面逻辑;数据全部存 MySQL——应用与数据分离) 2. 发一篇博客对应数据库的什么操作?(wp_posts 表一条 INSERT,status 置 publish) 3. wp_comments 关联 wp_posts 靠什么思想?(外键指向文章 id——一对多:一篇文章多评论)- ☐ 下一节(8-3 第三方库、驱动程序-在程序中使用数据库)
相关笔记
- 提取需求-书评网站表格设计的示例1-完成后的示意图 — 书评网站设计图,WordPress 是它的成熟版
- 加密、解密-转换和保存敏感数据 — wp_users 的密码就是哈希存储
- 第三方库、驱动程序-在程序中使用数据库 — 下一节:自己动手在代码里连库
- 🗄️ 数据库基础 · 索引 — 全课路线图