想自己规划设计数据库,如果不是小打小闹,当做个正事儿来做,最好是能画出ER图。画图之前,先得知道ER图是如何表示的?这样用在线作图工具时,心中早就有谱了。
下文来自知乎:见:https://zhuanlan.zhihu.com/p/351891001
ER图表示方法(蓝+白)
- 实体可以用矩形表示,矩形的蓝色区域是该实体集的名字(也就是映射为数据库中的表名),矩形白色区域的是实体集所具有的属性名称。带有下划线的属性表示该实体的主键
- 关系集:使用联系菱形表示,线段表示将实体集连接到关系集中。
下图是一个三元关系集,不论多复杂的n元关系集,我们分析实体集之间的关系都已二元关系集为基本单位。
E-R图中实体集的复合属性、多值属性的表示
- 复合属性:分解的多个子字段在实体集采用缩进的表示方法。
- 多值属性:属性名框在大括号内,以此表示他是一个集合
- 派生属性:其属性名紧跟后用一个括号,表示其实质上是一个函数。
带有属性的关系集的E-R图表示
上文说到关系集是由多个实体集抽象出来的一种特殊的实体集,那么其属性的E-R图表示方法,如下图所示。
将描述型属性在一个无分割的矩形内表示,并且用虚线连接矩形和菱形。
(那,这个虚线就表示描述属性咯~)
E-R图中的基数约束表示
在关系集与实体集之间用有向直线“ → ”标识 “一”; 无向直线“一”表示“多”
一对一的关系的E-R图:例如国家首脑与国家的关系就是典型的一对一的关系,用E-R图表示如下:
(箭头代表1,一对一的关系EP图示)
一对多关系的E-R图:例如下图一名导演可以招揽多名演员拍摄电影,所以:
- Director实体集与Actor实体集是一对多的关系,显然箭头指向Director关系集,表明参与Teamwork关系集的Director实体集的其中任意一个实体。而无向线段指向Actor实体集中可以有任意多个Actor实体.
- 同理Director实体集和Project实体集是一对多的关系。
(一对多的表示:有方向带箭头的,表示一,用数字1标示,而无方向不带箭头的,表示"多",用数字n标示)
还有一种是多对一的关系,其实和一对多关系是一样的,只是关系集参与次序不同而已。
原文还有带约束的表示方法,不过我了解上面这些,目前就够了,不需要达到如此的专业程度,有兴趣的朋友可以看看原文,一次性学个通透。