设计三范式

1、什么是设计范式?
    设计表的依据。按照这个三范式设计的表不会出现数据冗余。

2、三范式都是哪些?

    第一范式:任何一张表都应该有主键,并且每一个字段原子性不可再分。

    第二范式:建立在第一范式的基础之上,所有非主键字段完全依赖主键,不能产生部分依赖。
        多对多?三张表,关系表两个外键。
        t_student学生表
        sno(pk)        sname
        -------------------
        1                张三
        2                李四
        3                王五

        t_teacher 讲师表
        tno(pk)        tname
        ---------------------
        1                王老师
        2                张老师
        3                李老师

        t_student_teacher_relation 学生讲师关系表
        id(pk)        sno(fk)        tno(fk)
        ----------------------------------
        1                1                3
        2                1                1
        3                2                2
        4                2                3
        5                3                1
        6                3                3
    
    第三范式:建立在第二范式的基础之上,所有非主键字段直接依赖主键,不能产生传递依赖。
        一对多?两张表,多的表加外键。
        班级t_class
        cno(pk)            cname
        --------------------------
        1                    班级1
        2                    班级2

        学生t_student
        sno(pk)            sname                classno(fk)
        ---------------------------------------------
        101                张1                1
        102                张2                1
        103                张3                2
        104                张4                2
        105                张5                2
    
    提醒:在实际的开发中,以满足客户的需求为主,有的时候会拿冗余换执行速度。

3、一对一怎么设计?

    一对一设计有两种方案:主键共享
        t_user_login  用户登录表
        id(pk)        username            password
        --------------------------------------
        1                zs                    123
        2                ls                    456

        t_user_detail 用户详细信息表
        id(pk+fk)    realname            tel            ....
        ------------------------------------------------
        1                张三                1111111111
        2                李四                1111415621

    一对一设计有两种方案:外键唯一。
        t_user_login  用户登录表
        id(pk)        username            password
        --------------------------------------
        1                zs                    123
        2                ls                    456

        t_user_detail 用户详细信息表
        id(pk)       realname            tel                userid(fk+unique)....
        -----------------------------------------------------------
        1                张三                1111111111        2
        2                李四                1111415621        1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值