数据库设计三范式
概述
1NF 是对属性的原子性约束,要求属性具有原子性,不可再分解
反例:
name-age 非原子属性,违反1NF, 应该拆解
2NF 是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性
反例:
订单表两个相同ID,不能确保唯一性,违反2NF。可以分开,插入中间表
3NF 是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余
反例:
订单表中,产品ID 可以在产品表中找到产品名称,存在冗余,违反3NF,应该在订单表吧产品名称去掉
反3NF 允许存在少量得冗余
在实际的业务查询中会大量存在着表的关联查询,而大量的表关联很多的时候非常影响查询的性能。
所谓得反范式化就是为了性能和读取效率考虑适当得对数据库设计范式得要求进行违反。允许存在少量得冗余,换句话来说反范式化就是使用空间来换取时间
问题
json格式是否违反1NF?
是的,是第一范式的反例
参考
https://juejin.cn/post/7050690148689772575