总结表的设计

一对多:一对多,两张表,多的表加外键!!

多对多:多对多,三张表,关系表两个外键!!

一对一:一对一,外键唯一!!

    一对一放到一张表为啥要拆分表? 

    实际开发中,可能存在一张表字段太多,太庞大,需要拆分

    设计:

    没有拆分之前:一张表

      t_user

      id    login_name    login_pwd     real_name    email    address........

    -------------------------------------------------------------------------------------------------------------------------

      1       zhangsan     123    张三   zhangsan@123.com

      2    lisi         123    李四    lisi@123.com

    ...

    建议拆分两张表:

      t_login  登录信息表

      id(pk)    login_name    login_pwd

    -----------------------------------------------------------------------

      1      zhangsan       123

      2      lisi        123

      t_user 用户详细信息表

      id(pk)  real_name    email     address....    login_id(fk+unique)  外键加一个唯一性约束,

      ----------------------------------------------------------------------------------------------------   这里外键用的是登录信息表的id

      100    张三      zhangsan@123.com      1

      200    李四      lisi@123.com   

 

4.7、数据库设计三范式理论上的

  最终满足客户需求,有的时候会拿冗余换执行速度。

    sql中,表和表之间连接次数越多,效率越低(笛卡尔积)

  有的时候可能存在冗余,为了减少表的连接次数,这样做是合理的

   对于开发人员来说,sql语句的编写难度也会降低

上一篇:kafka集群部署


下一篇:Java 网络编程