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

E-R 图有两大记法流派:教材的传统记法(方框-菱形-椭圆)与业界常用的乌鸦脚记法(IE 记法:线头三根毛=多、一竖=一)——记法不同,语义相同,看懂哪种都行,团队统一一种即可。

📝 本节和前面几节的关系

上一节认了三件套,本节讲画法细节:属性怎么摆、关系两端怎么标 1 和 n、乌鸦脚长什么样。画法只是外壳,5-6 的关系语义才是内核。

一、传统记法的关系端标注

菱形两端写数字对(1、n、m):

┌──────┐   1      n   ┌──────┐
│ 班级 │────◇属于◇────│ 学生 │
└──────┘              └──────┘

读法:一个班级「属于」端对着 n 个学生;一个学生只属于 1 个班级。两端各读一遍,方向反了立刻暴露。

二、乌鸦脚(IE)记法

不写数字,线头形状表态:

班级 ────┐        ┌<──── 学生
         └─|  └─┤(一端一竖=1,另一端鸦脚=多)
线头 含义
一竖 \| 恰好一个
鸦脚 <(三根毛) 多个
圆圈 ○ 零个(可选)
一竖+鸦脚组合 一或多

学生 |--<课程:一个学生选多门课、一门课被多个学生选(多对多两端都是鸦脚)。

三、两种记法对照表

语义 传统 乌鸦脚
1:n 菱形两端写 1 和 n 一端竖线、一端鸦脚
m:n 两端都写 m、n 两端都是鸦脚
1:1 两端都写 1 两端都是竖线
可空参与 数字处注 0 线头加圆圈

四、动手 Demo:同一关系画两遍

「用户撰写书评」(1:n):

传统:   ┌────┐ 1    n ┌──────┐
         │用户│──◇撰写◇──│ 书评 │
         └────┘        └──────┘

乌鸦脚: 用户 ──|─────<── 书评
              (一端竖,一端脚)

语义完全一致。本课笔记沿用 ASCII 速写+文字标注(1:n / m:n),工具上 draw.io、ProcessOn 都内置两种模板。

五、30 秒实验

把 5-6 实验的三对关系(作者-书/配偶-配偶/仓库-货架)各画成乌鸦脚:两脚两脚、两竖、一竖一脚——画对说明关系形状真的吃透了。

六、常见误区

自测三问 1. 乌鸦脚记法里三根毛代表什么?(多个) 2. 多对多在乌鸦脚里长什么样?(两端都是鸦脚) 3. 两种记法语义一样吗?(一样,只是记号不同)

相关笔记