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
答案 0 :(得分:0)
就此而言,此表已标准化。使用“car”或“metro”等字符串作为V_type表的主键,或者仅作为车辆表的属性是合法的。如果将V_type实体的其他属性放入Vehicle表中,则只会违反规范化,例如,属性public
,用于确定是公共交通还是私人交通。
即使您没有这样的附加属性,也可能有理由将车辆类型分成自己的表格。这样您就可以控制可能存在的车辆类型。在您当前的设计中,如果有人输入了
这样的记录v18 Mercedes cra
将被接受。但是,如果您的车辆类型表包含仅适用于汽车,地铁,公共汽车和火车等有效车辆类型的条目,则可以通过外键约束确保车辆表仅引用这些类型。