假设我拥有一家销售汽车和摩托车的企业。我想跟踪每个数据。我公司为每辆车提供免费保修,但我们甚至不为摩托车提供保修。最初,我以为我会有两张桌子——一张“车辆”表格和一张“保修”表格,就像这样
Vehicles Warranties
VehicleID, SalePrice, VehicleType, WarrantyID WarrantyID, EffDate, ExpDate
其中 VehicleType 是“汽车”或“摩托车”。我的缺点是,在 Vehicles 表中,每辆摩托车的“WarrantyID”都有一个空值。这会被认为是不好的做法吗?
我考虑过的另一种方法是使用三个表,例如
Cars Motorcycles
VehicleID, SalePrice, WarrantyID Vehicle ID, SalePrice
Warranties
WarrantyID, EffDate, ExpDate
我的缺点是我将摩托车和汽车分成两张几乎相同的桌子。(实际上,他们会有更多的字段,如购买成本、里程等)。唯一的区别是所有汽车都有保修,没有摩托车有保修。
(注意:我还假设 2 或 3 辆车可以共享一个保修。)
设置此数据库的正确方法是什么?