我将于九月开始上大学,并希望在夏天做一些复习以帮助学习课程。我想知道是否有人可以抽出一些时间来帮助我实现数据库的规范化。我对此比较陌生,非常感谢任何帮助!
这是我开始的表格:
ABI_CODE INT <Unique Identifier
MOTOR_TYPE VARCHAR <Car, Bike or Van
MAKE VARCHAR <Renault, Ford etc.
MODEL VARCHAR <Focus, Fiesta etc.
MANUFACTURED_FROM INT <start year
MANUFACTURED_TO INT <end year
ENGINE_CC INT <999, 1199 etc.
ENGINE_TYPE VARCHAR <Diesel, Petrol or Electric
TRANSMISSION VARCHAR <Manual or Automatic
这就是我目前所处的位置:
Type ( MOTOR_TYPE )
Make ( MAKE )
Model ( ABI_CODE, MODEL, MANUFACTURED_FROM, MANUFACTURED_TO, ENGINE_CC )
Engine_Type ( ENGINE_TYPE )
Transmission ( TRANSMISSION )
如果有更多信息可以帮助别人帮助我,请询问,我将更新这篇文章。
编辑:显示关系
一个品牌可以有多个型号
一个模型可以有一个 Motor_type、Engine_Type、Manufactured_From、Manufactured_To、Engine_CC、Transmission
首先,我会在各处添加唯一标识符,以正确建立特定关系。
最后,您的数据模型将如下所示:
Model ( MODEL_ID (PK), ABI_CODE, MODEL, MANUFACTURER_ID (FK),
ENGINE_ID (FK), MOTOR_TYPE, Transmission, MAKE)
ManuFacturer (MANUFACTURER_ID, MANUFACTURED_FROM, MANUFACTURED_TO)
Engine ( ENGINE_ID, ENGINE_CC, ENGINE_Type )
根据您认为数据模式将如何变化,您可以拥有自己的电机类型、制造商和传输表,也可以不拥有。目前,我建议不要拥有自己的表格,因为这只会导致一张只有一个 PK 和一个值的表格。
不过,制造商和发动机的信息更适合放在自己的表格中。
提供的例子可以参考:
汽车登记系统正常化
为汽车登记系统设计一个标准化数据库,用于跟踪汽车、车主和制造商。将数据库标准化至3NF,创建适当的表以消除冗余并确保数据完整性。
此类示例在数据库管理课程和考试中很常见,学生被要求拿一张非标准化表格并演示高达3NF的标准化步骤。