不同类型的mysql公用表

时间:2018-07-25 11:39:51

标签: mysql sql composite-key

我想在mysql中为两个不同的表(例如repairsportscar)创建一个公用表(例如tank)。两者都需要修理,这是我的问题。我不能仅在表id中的两个表sportscartank中分别使用repair(PK),因为我无法确定ID 1是否来自sportscartank中。所以我也将type_id添加到表repair中。因此vehicle_id = 1type_id = 2应该定义它来自表tank,并且车辆ID为1。到目前为止,还算不错,但是不幸的是它没有用。我不知道为什么,但是似乎不接受vehicle_idtype_id作为组合键。在SqlYog中,我不允许选择相应的记录,因为在相关表中该记录始终为空。我尝试了很多不同的组合,甚至在表idtype_id中将sportscartank设置为复合PK,但是没有用。我究竟做错了什么?您能指出我正确的方向吗?谢谢。 enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

正如@Jorge所说,您的Repairs表需要链接到基本Cars(或Vehicles)表,该表既存储跑车又存储坦克。像Vehicles(vehicle_id, vehicle_type, other_atts)之类的东西。

根据要存储的有关坦克和跑车的信息,可以根据需要创建专用表。在SQL中表示继承是一个棘手的话题,但是可以通过多种方式来完成。例如,请参见How can you represent inheritance in a database?