数据库开发(六)数据库设计

数据库设计(数据库开发前期重要部分)

  • 逻辑模型-->物理模型-->转换成SQL,创建表等对象
  • Power Design等软件都可以绘制ER图
  • 物理模型可以直接转换成SQL语句
  • 实体关系:
    • 区域
    • 部门
    • 员工
    • 客户
    • >各个实体之间的关系??
    • 所有内容不能写在一个表中,如下表可以拆出一个区域表和其他表
    • 名字入职时间薪资部门名区域名
      aa...5000java工程师1
      bb 8000java工程师1
      cc 8000测试2
    • 区域表:

      id区域名
      1华东区
      2华中区
      3华北区

数据库设计范式:用来规范数据库的设计

目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)第四范式(4NF)、第五范式(5NF,又称为完美范式)

后一个是基于前一个的,比前一个更严格

通常只需遵循到第三范式

  • 1NF:列应该是不可拆分的,原子的,不应该包含多个字段值
  • 2NF:要求数据库表中的每个实例或记录必须可以被唯一区分
    • 要求每个表都有一个主键列,能唯一的代表这个表,其它的列完全依赖于这个列
    • 我们通常会选择一个与业务无关的列id
  • 3NF:简而言之,第三范式要求一个关系中不包含也在其它关系也包含的非关键字消息,消除冗余
    • 实际中,有时为了查询方便,反而会适当加一个冗余字段
    • 如:
      • 员工表:id,first_name,last_name,start_date,dept_id,name
      • 部门表:id,name,region_id    name完全依赖于id
      • 每个员工都有员工部门编号
        • dept_id依赖于id
        • name依赖dept_id
        • name依赖id

实体:表

实体的关系:表的关系

  • 一对一:
    • 丈夫和妻子
      • 一个丈夫最多只能有一个妻子,一个妻子最多只能有一个丈夫
        • 外键:两侧都可以
    • 人和护照
      • 一个人最多只能有一个护照,一个护照最多只能有一个人
        • 外键:护照一侧合理(ps:人可能没有护照,护照一定有对应的人)
  • 一对多
    • 父亲和孩子
      • 一个父亲可以有多个孩子,一个孩子只能有一个父亲
        • 外键:在多的一侧加外键
    • 部门和员工
      • 员工部门可以有多个员工,一个员工属于一个部门
        • 外键:在多的一侧加外键
  • 多对多
    • 学生和老师
      • 一个学生可以有多个老师,一个老师可以有多个学生
        • 外键:
          • 一般会创建一个中间表
            idstu_idtea_id
            111
            212
            313
            421
          • 学生<-->选课<-->老师

          • 老师和选课:一对多

          • 学生和选课:一对多

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值