比如说一个购物车数据表,有人是这样设计的,cert(id,uid,item1,item2,item3。。。),而正确做法应该是分两张表,cert(cert_id,item),cert(uid,cert_id)。
那么请问一下不正确的那张表违反了什么范式?为什么?
比如说一个购物车数据表,有人是这样设计的,cert(id,uid,item1,item2,item3。。。),而正确做法应该是分两张表,cert(cert_id,item),cert(uid,cert_id)。
那么请问一下不正确的那张表违反了什么范式?为什么?
违反了第三范式
第三范式,需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
可以将uid作为一个外键和订单表建立相应的关系。而不可以在订单表中添加用户信息的字段。
2 回答2.5k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
5 回答1.5k 阅读
2 回答1.1k 阅读✓ 已解决
2 回答2.2k 阅读
3 回答2.4k 阅读
3 回答753 阅读✓ 已解决
数据库设计错了,certid和uid可能确定多个item,表项都不一样。除非第一个表item是多值属性,那么这违反了第4范式。同时由于certid决定item所以第一个表存在部分依赖第2范式也不满足