总结表的设计
口诀(牢记于心):
- 一对一,外键唯一!!!!!!!!!!!
- 一对多,两张表,多的表加外键!!!!!
- 多对多,三张表,关系表两个外键!!!!
一对一放到一张表中不就行了吗?为啥还要拆分表?
- 在实际的开发中,可能存在一张表字段太多,太庞大。这个时候要拆分表。
一对一怎么设计?
没有拆分表之前:一张表
t_user
这种庞大的表建议拆分为两张
t_login 登录信息表
t_user 用户详细信息表
嘱咐一句话
- 数据库设计三范式是理论上的。实践和理论有的时候会有偏差。最终的目的都是为了满足客户的需求,有的时候会拿冗余换执行速度。因为在sql当中,表和表之间连接次数越多,效率越低(笛卡尔积)。有的时候可能会存在冗余,但是为了减少表的连接次数,这样做也是合理的,并且对于开发人员来说,sql语句的编写难度也会降低。
面试的时候把这句话说上:他就不会认为你是初级程序员了!