Database design 表的关系,该关系可能与另一个表相关,也可能与另一个表无关

Database design 表的关系,该关系可能与另一个表相关,也可能与另一个表无关,database-design,Database Design,我想知道是否有人能提供一些帮助。我正在设计一个数据库,我想知道应该如何处理这个问题。我的场景涉及一个车辆表,该表存储有关车队的信息(例如品牌、型号、当前里程等)。一个维护表存储有关对车辆进行的任何维护的信息。最后是运营成本表,它将存储与车辆相关的任何成本(例如燃料、维修、修理等) 我的问题是维护中的一些记录需要链接到维护记录,而有些则不需要。例如,维修是一项运营成本,将记录在维护日志中,但燃油是一项运营成本,不会记录在维护日志中 最好的处理方法是什么 以下是目前的表格,但这仅允许运营成本与维护记

我想知道是否有人能提供一些帮助。我正在设计一个数据库,我想知道应该如何处理这个问题。我的场景涉及一个车辆表,该表存储有关车队的信息(例如品牌、型号、当前里程等)。一个维护表存储有关对车辆进行的任何维护的信息。最后是运营成本表,它将存储与车辆相关的任何成本(例如燃料、维修、修理等)

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

最好的处理方法是什么

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

车辆(车辆ID、品牌、型号、里程、到期日)
维护(维护ID,车辆ID fk,说明)
运营成本(运营成本ID,维护ID fk,成本)

提前谢谢


J

如果我理解正确,您似乎需要两个用于OperationCost的表,其中OperationCostId是这两个表中的主键。根据成本类型,您可以填写以下一个或两个表:

操作成本维护(操作成本ID、维护ID)


OperatingCost(OperatingCostID,Cost)

使用当前模式,您可以将维护记录与具有联接的成本记录关联起来,这与您选择其他方式时的做法完全相同:

select * from OperatingCost where MaintenanceID = ?

每一点维护都有成本吗?在这种情况下,您可以将维护表视为OperatingCost上的可选详细信息表,并对两者使用相同的ID。维护的ID列将既是主键,也是引用OperationCost的外键。

是的,我想这可以满足我的需要。谢谢你的帮助!在与某人交谈后,他们想到了只使用一个OperationCost表并使用允许为null的MaintenanceID外键的想法。你对此有什么想法?我不这么认为,因为保养可能像检查轮胎压力一样简单,而不需要相关费用。