在设计数据库模型时,使用E-R图的方式可以帮我们理清各数据库实体信息及实体与实体之间的关系。
本文描述的为:E-R Crow画法
绘图工具: draw.io 离线版
1 E-R图
实体关系图(ERD)或ER模型代表任何系统中的数据。您可以使用它们来说明业务流程中数据的结构,或详细说明关系数据库中数据的存储方式。ER图不一定显示数据的处理方式或经过的确切过程,而是数据实体的结构和相互关系。
**
ER图有几种表示法,但最常见的是Chen和Crow的脚部表示法。
有两种主要样式-一种看起来更像流程图,另一种更像UML类图。可能更容易看到第二种样式表示的实际数据库。
2 E-R图说明
2.1 属性
组成实体的数据的各个位(字段)。在第一种图表样式中,它们绘制为围绕其实体浮动的圆圈。在第二种样式中,类似于UML类图,它们在矩形内列出。
如果使用属性标识实体,则该属性为主键并带有下划线。如果它引用另一个实体的标识属性,则它是一个外键并以_斜体表示_。如果您实际上不是在存储属性,而是从其他属性进行计算,则它是派生的属性,并且具有虚线轮廓。
chen:
)
crow:
2.2 关系
这些显示了实体之间的相互关系–它们可以用菱形表示,也可以用文本形式写在两个实体之间的连接器上。
第一种chen画法 用菱形表示实体直接的关系。
而在crow画法中,后者仅表示数据关联,没有任何互动。
关系连接器使用Crow的脚注来显示每个实体与另一个实体有多少关联。例如,在“习惯跟踪器”应用程序中-一名教练可以有0到许多用户,而一个用户只能有0或1个教练。用户可能有很多习惯,每个习惯可能属于许多用户。
关系端如下:
一名教练可以有0到许多用户,而一个用户只能有0或1个教练
则一个教练对应0个或多个用户,则一端应为下列图列
一个用户只能有0或1个教练,则为下列图列
则一个教练对应0个或多个用户,则一端应为下列图列 组合到一起则为
2.3 实体
这些表示一个数据集合,使用一个具有“垂悬”属性的矩形或一个包含其属性列表的框。
例如,实体Student可以包括属性StudentID,名称,地址,课程,主题,标记。
此示例之后的第二个实体是“课程”,其中包括属性“教授”,“已注册学生”列表以及该课程包含的主题。等等。
- 一个弱实体(显示为双矩形 chen画法),因为它不具有它自己独特的钥匙-它只存在于有关其所属实体。
- 一个关联实体(更容易在第二类型的图表看),显示有虚线轮廓和连接器-需要这种类型的实体,无论你有很多一对多的关系。要以第一种样式图创建关联实体,请添加实体形状和关系形状,并将这两个形状组合在一起。**
3 图例及参考
3.1 crow方法图列
3.2 示例
4 参考
https://drawio-app.com/entity-relationship-diagrams-with-draw-io/
https://www.er-diagram.com/database-er-diagram-examples/