• 数据库设计及ER模型


    数据库设计

    1.第一范式(确保每列保持原子性)

    基本的范式,保证数据库表中的所有字段都不可再分解。

    2.第二范式(确保表中的每列都和主键相关)

    在第一范式的基础上,第二范式需要表中的每一个字段都和主键相关,也就是说只能存在一种类型的数据。不可把多种类型数据放在一个表中。

    3.第三范式(确保每列都和主键列直接相关,而不是间接相关)

    在满足前两个范式的基础上,第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。

     

    • 1.1第一范式

    错误:表中的字段还可以再次分解,再拆。

    正确:表中字段不可以再分解。

    •  第二范式  

    错误:表中订单号和商品id是主键,表中的字段没有和所有主键关联,再拆分

    正确:表中的无关联的字段重新创建表,每一个表中的所有字段都和主键相关联

    • 第三范式

    错误:表中的客户信息和商品信息无直接关联,再拆

     再拆:将间接关联的信息再创建表,每个表的字段信息都是直接关联的

     

    • 最终实现的目标

     

    E-R模型

    E-R模型的基本元素是:实体、联系和属性

    • 实体:现实生活中任何可以被认知,区分的事物。

    • 联系:实体之间的关系,可以一点一,一对多哟,多对多。

    • 属性:实体的某一特性称为属性。

    关系也是一种数据,需要通过一个字段存储在表中

    1、一对一:一对一关系是最好理解的一种关系,主键可以设置为在两个表中的任意一个表

    在数据库建表的时候可以将人表的主键放置与身份证表里面,也可以将身份证表的主键放置于人表里面

                          

    2、一对多:主键应存放在多的表中

    1端是父亲,多端是儿子,所以多端具有1端的属性,也就是说多端里面应该放置1端的主键,那么学生表里面应该放置班级表里面的主键

    •  

     

       

    3、多对多:新建一张表C,这个表只有两个字段,一个用于存储A的主键值,一个用于存储B的主键值

    对于多对多关系,需要转换成1对多关系,那么就需要一张中间表来转换,这张中间表里面需要存放学生表里面的主键和课程表里面的主键,此时学生与中间表示1对多关系,课程与中间表是1对多关系,学生与课程是多对多关系

     

     

  • 相关阅读:
    ABP
    妖道角
    检测空值,以及会不会出现mapping类型不一致的问题
    wcf服务契约代理链
    wcf服务契约继承
    win64+anaconda+xgboost(转)
    python中迭代问题
    ROC曲线和AUC值(转)
    python中split()和split(' ')的区别
    str和repr的区别(转)
  • 原文地址:https://www.cnblogs.com/dayle/p/9946714.html
Copyright © 2020-2023  润新知