二、如何看懂ER图
一、业务数据库设计流程
- 需求分析:根据用户的需求,分析出需要记录的数据
- 概要设计:根据分析岀的数据,设计
ER图
- 详细设计:将
ER图
转换成数据库模型图
和数据表
二、瀑布模型还是螺旋模型
1. 瀑布模型
瀑布模型的特点是在每个阶段的工作都清晰详尽,容易预估风险和开发成本,每个阶段人员安排也非常清晰。
瀑布模型的缺点是中途不能出现任何问题,例如客户要改动需求,重新定义某项业务流程。
瀑布模型还有一个缺点是项目编码处在后半程,因此客户需要等待很长时间才能体验到产品,
故此需要在早期就为用户提供一个体验的样本,这个样本就是产品原型。
瀑布模型非常适合使用在需求清晰且不易改变的情况。
除此之外,遇到一个需求非常清晰的客户是使用瀑布模型的一个重要前提。
2. 螺旋模型
螺旋模型是一种演化软件开发过程模型,
它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。
螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。
同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。
3. 数据库只能使用瀑布模型
因为数据库改动后,产生的连带效应是很大的!
比如修改了数据库字段名称或者类型,后台的代码就要修改model、controller、验证规则等很多,
前端可能也要修改html,表单的验证提交等。
数据库改动一点点,可能程序员就要修改很多代码,所以数据最好使用瀑布模型。
提前设计好完整健壮的数据库,这才是我们要做的,而不是迭代开发一点一点往上加砝码加功能。
三、什么是ER图
ER
图也称实体关系图
(Entity Relationship Diagram
),提供了表示实体
类型、属性
和关系
的方法,用来描述现实世界的概念模型。
ER图和用例图对比
用例图表现的是用户和系统功能之间的关系
比如:有一个在线教育的系统,用户在这个系统上,有 咨询、评价、在线学习等功能。
用户派生的一个用户类型是管理员,他的有的功能是课程管理和教师管理
四、绘制ER图的软件
- 微软的
Office Visio
- 亿图图示(
Edraw
) Enterprise Architect
(EA
),老牌软件,功能强大,比较复杂,不适合新手
五、属性语法
1. 复合属性
复合属性(composite attribute
):复合属性是指具有多个属性的组合
如图:工号
属性,它可以包含公司
、部门
、数字编号
唯一属性
指的是唯一可用来标识该实体实例或者成员的属性,用下划线表示。
复合属性
也有唯一属性
,例如学生的所在班级属性,由于多个年级都有班级,
所以单单班级属性是不唯一的,但是和年级组成的复合属性后则可以匹配成唯一属性。
2. 多值属性
多值属性(multivalued attribute
):一个实体的某个属性可以有多个不同的取值,例如一本书的分类属性,这本书有多个分类,例如科学、医学等,这个分类就是多值属性, 用双线椭圆表示。
如图:员工的多值属性角色
,一个员工可以是多个角色
3. 派生属性
派生属性(derivers attribute
):是非永久性存于数据库的属性。
派生属性的值可以从别的属性值或其他数据(如当前日期)派生出来,用虚线椭圆表示.
如图:人数
属性,是需要计算统计出来的属性
4. 可选属性
并不是所有的属性都必须有值,有些属性的可以没有值,这就是可选属性
,
在椭圆的文字后用(0)
来表示,如下图的备注
就是一个可选属性。
六、实体关系语法
1. 一对一
关系使用菱形表示,菱形两边标上1
,说明是1
对1
关系,
他们通过员工编号
关联,办公电脑只要有员工编号这个属性,就能查出来某个电脑属于哪个员工
2. 一对多
学生只要有班级编号,就能查出学生是隶属于哪个班级
3. 多对多
多对多的情况,需要新建一个关系表,单独存储 员工编号和角色编号
七、模型图
概要设计阶段用的ER图
,详细设计阶段就要模型图
了