🗄️ 第五章 引入数据库-数据库的结构与表的设计
📄 一句话概括

表拆好了(3NF),现在给每一列定类型:数值/字符串/日期三大家族选谁、选多大——这是把逻辑模型下楼梯到物理模型的第一步(5-9 楼层图兑现时刻)。

📝 本节和前面几节的关系

第四章 4-1~4-5 学的是「类型有哪些、脾气如何」(零件);本节是设计视角——「拆好的表怎么给列配型」(装配)。5-19 书评网站实战把每个列真正配上。

一、配型四问法(对每列连问)

问 答 动作
是数字吗? 算不算钱?要不要小数? INT/BIGINT vs DECIMAL(总,小)
是文字吗? 长度固定吗?可能多长? CHAR(n)/VARCHAR(n)/TEXT
是日期吗? 要不要到秒? DATE/DATETIME
是真假吗? 只有两种状态? BOOLEAN(且要配约束锁死,4-5 的软肋)

二、长度怎么定:留余量但不挥霍

三、配型清单速查(书评网站预告)

列 类型 理由
user_id INT 自增主键(4-11)
nickname VARCHAR(20) 变长短文本
isbn CHAR(13) 定长编码(4-3 的 CHAR 用武之地)
score DECIMAL(3,1) 0~10 分一位小数
created_at DATETIME 精确到秒的评论时间

四、动手 Demo:按四问法配一列

列「学生体温」:是数字 ✅;要不要小数?(要,36.8)→ 小数派;算钱吗?(不算)→ 不必 DECIMAL?——体温要精确也不能 FLOAT(0.1 陷阱无差别攻击),DECIMAL(4,1) 稳。四问法走完,类型自定。

五、30 秒实验

给「身份证号」配型:它是数字吗?(18 位含 X,是文字)→ CHAR(18) 定长——「看着像数字」的列最容易配错型,四问法先问存的是什么再问长什么样。

六、常见误区

自测三问 1. 配型四问?(数值吗/文字吗/日期吗/真假吗) 2. ISBN 为什么用 CHAR(13)?(定长编码——CHAR 的本职) 3. 「像数字」的编号为什么常配文字型?(前导 0、字母会被 INT 吃掉)

相关笔记