我想在mysql中创建一个公共表(例如。 repair
)对于两个不同的表(例如。 sportscar
以及 tank
). 两个都需要修理,我的问题来了。我不能只有 id
两个表的(pk) sportscar
以及 tank
在表中 repair
,因为我无法确定id 1是否来自 sportscar
或来自 tank
. 所以我补充说 type_id
也到table repair
. 所以呢 vehicle_id = 1
以及 type_id = 2
应该定义它来自表 tank
,车辆id为1。到目前为止还不错,但不幸的是它不起作用。我不知道为什么,但它似乎无法接受 vehicle_id
以及 type_id
作为复合键。在sqlyog中,我不允许选择相应的记录,因为它在相关表中总是空的。我尝试了很多不同的组合,甚至 id
以及 type_id
作为表中的复合pk sportscar
以及 tank
,但不起作用。我做错什么了?你能给我指一下正确的方向吗?谢谢您。
1条答案
按热度按时间eulz3vhy1#
正如豪尔赫所说,你的
Repairs
表需要链接到基Cars
(或Vehicles
)一张table,里面有跑车和坦克。像这样的Vehicles(vehicle_id, vehicle_type, other_atts)
.根据您存储的关于坦克和跑车的信息,您可以根据需要创建专门的表。在sql中表示继承是一个棘手的主题,但可以通过多种方式来实现。例如,请参见如何在数据库中表示继承?。