一.数据库设计在业务流程的位置
需求分析时要将原始的需求抽象成业务模型
写成需求说明书 <需求说明书>
概要设计
抽取实体 : 业务模型 -> 实体模型 (java类)
数据库设计 :
业务模型/实体模型 -> 数据模型
详细设计
...
二.数据库设计的三大范式
第一范式:要求表的每个字段必须是不可分割的独立单元
反例
如: student 名字有曾用名和现在的名字 student name 小王|小明 查询不便 ====违法第一范式 student name old_name ====符合第一范式
第二范式:在第一范式的基础之上,要求每张表只表达一个意思。表的每个字段都和主键有依赖关系
反例
employee(员工) : 员工编号 员工姓名 部门名称 订单名称 --违反第二范式
订单名称要设计一张订单表,这样才符合第二范式
第三范式:在第二范式基础上,要求每张表除主键之外的其他字段都只能主键有直接决定依赖关系
员工表: 员工编号(主键) 员工姓名 部门编号 部门名称 ...
部门名称和部门编号有关系,又和员工编号有关系
解决办法就是建立两个表,加外间约束
时间: 2024-10-09 21:06:28