日期:2014-05-17  浏览次数:20521 次

表格设计
下面这张表符合第三范式吗? 感觉主分类和子分类也有依赖关系。如果不是该怎么写?
食物名称 主分类 子分类
排骨 肉 猪

其中食物名称是主键

------解决方案--------------------
SQL code

第1规范:没有重复的组或多值的列,这是数据库设计的最低要求。
第2规范: 每个非关键字段必须依赖于主关键字,不能依赖于一个组合式主关键字的某些组成部分。消除部分依赖,大部分情况下,数据库设计都应该达到第二范式。
第3规范: 一个非关键字段不能依赖于另一个非关键字段。消除传递依赖,达到第三范式应该是系统中大部分表的要求,除非一些特殊作用的表。
更高的范式要求这里就不再作介绍了,个人认为,如果全部达到第二范式,大部分达到第三范式,系统会产生较少的列和较多的表,因而减少了数据冗余,也利于性能的提高。

海爷的博客

------解决方案--------------------
我感觉这样放到一个表里面不要,分类这个东西可能子分类里面又有几个分类,这样放到一列里面会很痛苦的,可以考虑新建一个类型表,以行的形式去存放类型,再弄个关系表来关联主表和类型表。
------解决方案--------------------
探讨

我感觉这样放到一个表里面不要,分类这个东西可能子分类里面又有几个分类,这样放到一列里面会很痛苦的,可以考虑新建一个类型表,以行的形式去存放类型,再弄个关系表来关联主表和类型表。

------解决方案--------------------
明显食物不能做主键.
即然有:
排骨 肉 猪
就肯定有:
排骨 肉 牛

主键是(排骨,肉,猪)

------解决方案--------------------
对于小表,全表主键是可以的,不过我觉得这是没有方法的方法而已。不是优先考虑的方法