我正在标准化的表:
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的标准化步骤。