与另一个表可能相关或不相关的表的关系

时间:2011-04-04 10:53:53

标签: database-design

我想知道是否有人可以提供一些帮助。我正在设计一个数据库,我想知道如何处理它。我的方案涉及一种车辆表,其存储关于车队的信息(例如品牌,型号,当前里程等),维护表以存储关于在车辆上执行的任何维护的信息。最后是运营成本表,这将存储与车辆相关的任何成本(例如燃料,维修,维修等)。

我的问题是维护中的一些记录需要链接到维护记录而有些则没有。 E.g维修是一项运营成本,将记录在维护日志中,但燃油是一项运营成本,不会记录在维护日志中。

处理此问题的最佳方法是什么?

目前这是表格,但这只允许运营成本与维护记录相关:

车辆( VehicleID ,制造,型号,里程,MOT到期)
维护( MaintenanceID ,VehicleID fk,说明)
OperatingCost( OperatingCostID ,MaintenanceID fk,Cost)

提前致谢。

Ĵ

2 个答案:

答案 0 :(得分:2)

如果我理解正确的话,您似乎想要两个用于OperatingCost的表,其中OperatingCostID是两个表中的主键。根据您将填充其中一个或两个表的成本类型:

OperatingCostMaintenance(OperatingCostID,MaintenanceID)

OperatingCost(OperatingCostID,Cost)

答案 1 :(得分:0)

使用您当前的架构,您可以使用连接将维护记录与成本记录相关联,就像您从另一个方向那样:

select * from OperatingCost where MaintenanceID = ?

每一次维护都需要付出代价吗?在这种情况下,您可以将Maintenance表视为OperatingCost上的可选详细信息表,并对两者使用相同的ID。维护的ID列既是主键,也是引用OperatingCost的外键。