规范化混淆,是一种传递依赖的东西吗?

时间:2016-04-30 16:11:49

标签: database-design relational-database database-normalization

v_type是否需要在单独的表中,是或否请解释应用哪个规范化规则?我希望这个表规范化到3NF。

Vechile
v_id (pk) | V_name     |  V_type
----------------------------------
v1          Ferrai        car
v2          merto         train
v3          City_bus      bus
v4          Lamborgini    car
v5          grey hound    bus

1 个答案:

答案 0 :(得分:0)

就此而言,此表已标准化。使用“car”或“metro”等字符串作为V_type表的主键,或者仅作为车辆表的属性是合法的。如果将V_type实体的其他属性放入Vehicle表中,则只会违反规范化,例如,属性public,用于确定是公共交通还是私人交通。

即使您没有这样的附加属性,也可能有理由将车辆类型分成自己的表格。这样您就可以控制可能存在的车辆类型。在您当前的设计中,如果有人输入了

这样的记录
v18   Mercedes   cra

将被接受。但是,如果您的车辆类型表包含仅适用于汽车,地铁,公共汽车和火车等有效车辆类型的条目,则可以通过外键约束确保车辆表仅引用这些类型。