本章要回答的三个问题:怎么把华彩商贸嘴里"我们就是想管管库存和客户"这句话,变成几张规范的表?字段类型、主键外键这些设置,做对了和做错了差别有多大?为什么老师说"表设计错了,后面全是补丁",错到底错在哪?
在 Access 里建一张表只需要十分钟,建一套不会坑你的表却需要方法论。华彩商贸最初的需求清单听起来很朴素:记库存、记客户、记订单。但如果直接照着字面建三张超级大表,三个月后他们就会撞上每个自学者都撞过的墙:客户改了名字,几百条历史订单里的旧名字要不要跟着改?同一批货被录了两次库存怎么办?"上月销售额"每次统计出来的数都不一样?
问题的根源不在软件,在于没人先把业务翻译成结构。本章教的就是这门翻译手艺:把口头需求提炼出实体(客商、货品、单据),给实体定属性(名称、规格、日期),再用键和关系把实体连成整体。这套功夫迁移性极强——将来你学 SQL Server、学任何数据库工具,建模的思维方式原样通用,变的只是操作界面。
反过来讲,Access 的低门槛恰恰放大了建模失误的危害:正因为谁都能十分钟拖出一张表,大量的文件库从出生起就结构畸形,等发现时数据已经积了几万行,纠正成本陡增。这一章读得慢一点、演练做得细一点,是全书回报率最高的时间投资。
| 节号 | 回答哪个问题 | 关键产出 |
|---|---|---|
| 2.1 关系模型基础 | 表、字段、键这些词汇到底指什么 | 一套可复用的概念语言与判断标准 |
| 2.2 表结构与字段设计 | 一张好表长什么样,坏表坏在哪 | 字段类型选型经验加规范化步骤 |
| 2.3 关系与完整性 | 多张表怎么咬合成一个整体 | 三种关系的建立方法与守门规则 |
| 2.4 规范与字典 | 团队协作时的约定俗成 | 命名规范模板与数据字典样例 |
| 2.5 抽象演练 | 完整走一遍从头到尾的过程 | 华彩台账到五张表的建模全过程 |
五个小节是一条严格递进的流水线:概念先统一,再动手设计表本身,然后连线成网,最后补上团队协作的工程化环节。2.5 的综合演练把前四节串成一次完整实操。学法上有一个经过验证的顺序建议:每节末尾的演练务必亲手做完再前进,尤其是 2.2 的字段选型——看懂和手感之间隔着至少一次把字段类型设错的返工。
表和网络搭好后,数据依然是静静躺着的。第 3 章让它们开口说话:用查询提问、筛选、汇总、跨表追账。你会看到第 2 章每一处严谨的设计如何在查询里兑现为省心——主键让联接又快又准,完整性让统计口径从不打架。
合上这一章之前,再交代一个被反复验证的现象:建模能力上真正的分水岭不在懂不懂范式,而在于肯不肯在动工前花一小时跟业务方核对规则。敢当场动软件的人多,肯先画草图的人少,三个月后系统是否还能清爽地改,几乎全由这一小时决定。希望你成为后一种人。
检验本章学习的标准也顺手给出:把你自己的业务按五步法走完一遍后,拿给一位完全不了解业务的同行看图提问——他问出的每一个你答不上来的问题,都是草稿上还没想清楚的角落。这套"被外行问倒测试"比任何自我感觉都诚实。