我想知道是否有人可以提供一些帮助。我正在设计一个数据库,我想知道如何处理它。我的方案涉及一种车辆表,其存储关于车队的信息(例如品牌,型号,当前里程等),维护表以存储关于在车辆上执行的任何维护的信息。最后是运营成本表,这将存储与车辆相关的任何成本(例如燃料,维修,维修等)。
我的问题是维护中的一些记录需要链接到维护记录而有些则没有。 E.g维修是一项运营成本,将记录在维护日志中,但燃油是一项运营成本,不会记录在维护日志中。
处理此问题的最佳方法是什么?
目前这是表格,但这只允许运营成本与维护记录相关:
车辆( VehicleID ,制造,型号,里程,MOT到期)
维护( MaintenanceID ,VehicleID fk,说明)
OperatingCost( OperatingCostID ,MaintenanceID fk,Cost)
提前致谢。
Ĵ
答案 0 :(得分:2)
如果我理解正确的话,您似乎想要两个用于OperatingCost的表,其中OperatingCostID是两个表中的主键。根据您将填充其中一个或两个表的成本类型:
OperatingCostMaintenance(OperatingCostID,MaintenanceID)
OperatingCost(OperatingCostID,Cost)
答案 1 :(得分:0)
使用您当前的架构,您可以使用连接将维护记录与成本记录相关联,就像您从另一个方向那样:
select * from OperatingCost where MaintenanceID = ?
每一次维护都需要付出代价吗?在这种情况下,您可以将Maintenance表视为OperatingCost上的可选详细信息表,并对两者使用相同的ID。维护的ID列既是主键,也是引用OperatingCost的外键。