mysql考勤数据库设计_mysql 数据库设计

范式

大概有8种范式,遵循前三个一般数据库就没有问题

1、列不能再拆分   #比如一列中有姓名,又有性别,就是没有遵循这一条范式

2、在第一范式的基础上,1、必须有主键(提示:主键可以是表中的多个列),2、非主键列必须完全依赖主键,不能是依赖主键的一部分,比如有两个主键,有非主键列只依赖其中一个主键,那么就不遵循范式2,这个列应该拆分成另一个表,比如:

| order_id | product_id | price | quantity | product_name |

|111 | 11 | 123 | good | pen|

order_id 和 product_id是两个主键,

product_name、price只依赖主键product_id,却不依赖order_id,不符合范式2,应该拆分:

| order_id | product_id | quantity |

|111 | 11 | 4|

product_id | price | product_nam

3、在范式2基础上,另外非主键必须直接依赖主键,不能存在传递依赖。即不能存在:非主键列a依赖于非主键b,非主键列b依赖于主键的情况。

多重主键应用:

比如这种时候

商品品牌  商品型号

诺基亚       920

三星        NOTE2

诺基亚      8088

比如这样商品品牌可能有重复,都是诺基亚,但是诺基亚厂商生产的商品型号是不会重复的

也比如,可能好多品牌都有920这个型号,但是一个品牌只有一个920的型号

关系型数据库设计:

多对一时,在多的表中添加字段,对应一

多对 多时,新建一个表,在其中存储前两个表的主键,这个表叫做聚合表,它用到了几个表的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值