车辆数据标准化

问题描述 投票:0回答:2

我正在标准化的表:

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。

sql database database-design normalization
2个回答
2
投票

首先,我会在各处添加唯一标识符,以正确建立特定关系。

最后,您的数据模型将如下所示:

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 和一个值的表格。

不过,制造商和发动机的信息更适合放在自己的表格中。


0
投票

提供的例子可以参考:

姓名:

汽车登记系统正常化

问题:

为汽车登记系统设计一个标准化数据库,用于跟踪汽车、车主和制造商。将数据库标准化至3NF,创建适当的表以消除冗余并确保数据完整性。


此类示例在数据库管理课程和考试中很常见,学生被要求拿一张非标准化表格并演示高达3NF的标准化步骤。

© www.soinside.com 2019 - 2024. All rights reserved.