这些表适合数据库First Normal Form吗?

时间:2011-01-06 06:02:20

标签: database database-design

表用户

userId    name     company    company_address     url

1         Joe       ABC       Work Lane         abc.com

2         Jake      ABC        Work Lane        xyz.com

3         tom       XYZ       Job Street        abcde.com

4         jim      XYZ       Job Street         fexyz.com

第二个表

id          name          favourite_food_1          favourite_food_2   

1           Sam              Curry                  Steak       

 2           Lucy           Chicken                      Burgers                 

如果桌子不适合1NF,为什么?谢谢。

4 个答案:

答案 0 :(得分:2)

第一张表适合1NF。第二个没有 - 有两个最喜欢的食物领域的重复组。不是每个人都必须有两种最喜欢的食物(或任何最喜欢的食物,或者有3种以上的食物),所以这些字段可以为空,因此导致表失败1NF。

答案 1 :(得分:1)

1NF不仅仅意味着每个值都必须是原子的吗?换句话说,每个关系数据库表都是1NF,因为不允许使用值集。

答案 2 :(得分:1)

1NF为有组织的数据库设置了非常基本的规则:

1:消除同一个表中的重复列。 2:为每组相关数据创建单独的表,并使用唯一列(主键)标识每一行。

数据库表的问题是“名称”(重复列)。

答案 3 :(得分:1)

每个关系表始终满足1NF。如果SQL表准确表示关系,则它在1NF中,即它具有唯一的列名,并且不允许空值或重复行。