我正在建立一个车队单元管理软件,用于处理安装在客户端上的GPS设备的数据。车辆。
现在我必须实现数据库设计。我有两个主要的表格。
表1:Fleet_Unit
(unit_id,col_2,col_3,col_4),unit_id
是PK
表2:Gps_Device
(device_id,col_2,col_3,col_4),device_id
是PK
在大多数情况下,只有一个GPS设备安装在一辆车上,但有时可能出于各种原因在同一车辆上安装两个或更多GPS设备。因此,我必须决定是否应该有一个额外的表来将车辆映射到gps设备,或者在Gps_Device
表中放置一个额外的列,其中将存储Fleet_Unit
表的ID。
我决定使用第一种方法,所以我又创建了一个表:
Fleet_unit_gps_device_mapping
(fleet_unit_id,gps_device_id)因此,在我征求意见之前,让我向您介绍几个用于描述fleet_unit对象的表。
每个gps设备都有一些模拟和数字I / O.可能有一个或多个燃油表连接到gps设备和车辆发动机,温度传感器,读卡器等。
所以这是一个额外的表格(其他表格相似):
fleet_unit_digital_sensors_mapping
(fleet_unit_id,gps_device_id,sensor_col_1,sensor_col_2)正如我所提到的,可能有多个gps设备安装在同一车辆上,所以 digital-sensor-1 从第一个gps设备读取< / em>与 digital-sensor-1 不同,后者是从第二个gps设备中读取的。
现在我想问你如何实施数据库。
我应该使用表fleet_unit_id
中的gps_device_id
和fleet_unit_digital_sensors_mapping
作为表Fleet_Unit
和Gps_Device
或
我应该创建一个新的列master_id
,它是一个&#34;组合&#34; fleet_unit_id
和gps_device_id
并将其连接到映射表 - Fleet_unit_gps_device_mapping
,我需要引入另一个用于地图的列。
我问的原因是因为在第一种情况下,如果我有10个以上描述车辆的表,我必须将每个表与fleet_unit
和gps_device
表连接起来。在第二种情况下,我只需将所有10个以上的表连接到映射车辆和gps设备的表格。
提前致谢。