数据库表的设计注意事项有哪些?三大范式是哪些?

数据库设计的注意事项:
**字段的原子性:**保证每列的原子性,不可分解,能用一个字段表达清楚的绝不使 用第二个字段。
**主键设计:**主键不要与业务逻辑有所关联,最好是毫无意义的一串独立不重复的 数字。
**字段使用次数:**对于频繁修改的字段(一般是指状态类字段)最好用独立的数字 或者单个字母去表示,不用使用汉字或长字符的英文。
字段长度:建表的时候,字段长度尽量要比实际业务的字段大 3-5 个字段左右, 最好是 2 的 n 次方幂值。
关于外键:尽量不要建立外键,保证每个表的独立性。
动静分离:最好做好静态表和动态表的分离。 关于 code 的值:使用数字码或者字母去代替实际的名字,也就是尽量把 name 转换为 code。
**关于 null 的值:**尽量不要有 null 值,有 null 值的话,数据库在进行索引的时候 查询的时间更久,从而浪费更多的时间!可以在建表的时候设置一个默认值!
关于引擎的选择:myisam 的实际查询速度要比 innodb 快,因为它不扫面全表, 但是 myisam 不支持事务,没办法保证数据的 Acid。
资源存储:数据库不要存储任何资源文件。
与主键相关:根据数据库设计三大范式,尽量保证列数据和主键直接相关而不是 间接相关 关系映射:多对一或者一对多的关系,关联一张表最好通过 id 去建立关系。 预留字段:在设计一张表的时候应该预制一个空白字段,用于以后的扩展。
留下单一字段确定是否可用:通过一个单一字段去控制表是否可用。 删除字段:数据库是禁止使用 delete 命令的,一般都不会真正删除数据,都是采用改状态的方式,设置 state 字段,通过修改状态赋予它是否有效的逻辑含义!

三大范式的了解:

第一范式(1NF):确保每一列的原子性 数据表中的每一列都是最小的不可分割的单元
第二范式(2NF):表中的记录是唯一的 表中的数据是可以通过主键来区分的 第三范式(3NF):表中数据不要有冗余 在一个表中不要出现其他表中除了关键字段(主键)的其他字段,用外键进行关 联

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值