我想在性能方面扩展这个问题。数据库架构是:
制作
- MakeId
- 品牌名称
模型
- 型号 ID
- 型号名称
- 制造商 (FK)
车辆
- 车辆编号
- 购买日期
- 型号 ID (FK)
如果我想知道车辆的制造商,我需要使用 Vehicle.Model.Make 遍历模型表。假设我没有三个而是 4 或 5 个以这种方式连接的表,因此我必须编写例如 InvoiceForVehicle.Vehicle.Model.Make。我认为这会导致查询性能不佳。
我可以在 InvoiceForVehicle 表中添加一个额外的列MakeId (FK),该表直接进入 make。这意味着我有重复的数据,并且每次我更改 InvoiceForVehicle 和车辆之间的关系时,我都必须相应地更新MakeId (FK)。
车辆发票
- 发票编号
- 创建日期
- 车辆 ID (FK)
- 制造商 (FK)
这是一个好主意吗?