一、业务数据库设计流程

  1. 需求分析:根据用户的需求,分析出需要记录的数据
  2. 概要设计:根据分析岀的数据,设计ER图
  3. 详细设计:将ER图转换成数据库模型图和数据表

二、瀑布模型还是螺旋模型

1. 瀑布模型

瀑布模型的特点是在每个阶段的工作都清晰详尽,容易预估风险和开发成本,每个阶段人员安排也非常清晰。

瀑布模型的缺点是中途不能出现任何问题,例如客户要改动需求,重新定义某项业务流程。
瀑布模型还有一个缺点是项目编码处在后半程,因此客户需要等待很长时间才能体验到产品,
故此需要在早期就为用户提供一个体验的样本,这个样本就是产品原型。

瀑布模型非常适合使用在需求清晰且不易改变的情况。
除此之外,遇到一个需求非常清晰的客户是使用瀑布模型的一个重要前提。


2. 螺旋模型

螺旋模型是一种演化软件开发过程模型,
它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。

螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。
同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。


3. 数据库只能使用瀑布模型

因为数据库改动后,产生的连带效应是很大的!

比如修改了数据库字段名称或者类型,后台的代码就要修改model、controller、验证规则等很多,
前端可能也要修改html,表单的验证提交等。

数据库改动一点点,可能程序员就要修改很多代码,所以数据最好使用瀑布模型。
提前设计好完整健壮的数据库,这才是我们要做的,而不是迭代开发一点一点往上加砝码加功能。


三、什么是ER图

ER图也称实体关系图(Entity Relationship Diagram),提供了表示实体类型、属性关系的方法,用来描述现实世界的概念模型。

ER图和用例图对比

用例图表现的是用户和系统功能之间的关系

比如:有一个在线教育的系统,用户在这个系统上,有 咨询、评价、在线学习等功能。
用户派生的一个用户类型是管理员,他的有的功能是课程管理和教师管理


四、绘制ER图的软件

  1. 微软的 Office Visio
  2. 亿图图示(Edraw
  3. Enterprise Architect (EA),老牌软件,功能强大,比较复杂,不适合新手

五、属性语法

1. 复合属性

复合属性(composite attribute):复合属性是指具有多个属性的组合

如图:工号属性,它可以包含公司部门数字编号

唯一属性指的是唯一可用来标识该实体实例或者成员的属性,用下划线表示。

复合属性也有唯一属性,例如学生的所在班级属性,由于多个年级都有班级,
所以单单班级属性是不唯一的,但是和年级组成的复合属性后则可以匹配成唯一属性。


2. 多值属性

多值属性(multivalued attribute):一个实体的某个属性可以有多个不同的取值,例如一本书的分类属性,这本书有多个分类,例如科学、医学等,这个分类就是多值属性, 用双线椭圆表示。

如图:员工的多值属性角色,一个员工可以是多个角色


3. 派生属性

派生属性(derivers attribute):是非永久性存于数据库的属性。
派生属性的值可以从别的属性值或其他数据(如当前日期)派生出来,用虚线椭圆表示.

如图:人数属性,是需要计算统计出来的属性


4. 可选属性

并不是所有的属性都必须有值,有些属性的可以没有值,这就是可选属性
在椭圆的文字后用(0)来表示,如下图的备注就是一个可选属性。


六、实体关系语法

1. 一对一

关系使用菱形表示,菱形两边标上1,说明是11关系,
他们通过员工编号关联,办公电脑只要有员工编号这个属性,就能查出来某个电脑属于哪个员工


2. 一对多

学生只要有班级编号,就能查出学生是隶属于哪个班级


3. 多对多

多对多的情况,需要新建一个关系表,单独存储 员工编号和角色编号


七、模型图

概要设计阶段用的ER图,详细设计阶段就要模型图