IT 数据库设计:足迹第十四步了解数据库3范式(如何使用Navicat)

我最开始接触数据库,是根据Excel建数据库表;

1)3范式核心:同类合并,异类分开;建表时才能字段总数最少,才能效率变高,节省资源;即使SQL会变复杂;

第一范式(1NF):

  数据表中的每一列(字段),必须是不可拆分的最小单元;

第二范式(2NF):

  数据库最好只有一个主键;

第三范式(3NF):
  要求表中的每一列必须与主键直接传递;

如Excel中不同的表格只有年份不同,年份抽离出来当字段使用;就叫同类合并,表面上因为合并增加了一个年份字段,实际上节约消失了多张表;

如下图违反异类分开;违反了第1范式,字段不符合原子性;也违反了第3范式,数量和价格应该另建一张表;异类合并令数量字段借助了物品字段,物品越多,导至数量字段倍数增加;

2)根据需求:将一堆Excel表,导入同一个库;

3)目标:导入的前提下,数据库和库中的字段越少越好,节省资源;

4)工具:excel(数据采集)+pgsql()+navicat(可视化工具);

5)PostGreSql数据库id类型叫BIGSERIAL(64);MySql数据库id类型叫INT;Oracal数据库id类型叫VARCHAR2;

#5.1)"id" bigserial:postgreSql中只能使用序列赋值id(64位id适应UUID),

必须空表时加序列,有旧数据时,id会出现双序列后果

#5.2)postgreSql建表时,不支持直接复制表:因为复制后会多表共用一个序列;
 

核心:总字段数要少;

 

补:范式1,每个列名必须有原子性;范式2,主键是单字段;范示3,拆分成多个单表;

范式的作用:解决增删改异常和数据冗余

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值