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

mysql - 不同类型的mysql通用表-LMLPHP

mysql - 不同类型的mysql通用表-LMLPHP

mysql - 不同类型的mysql通用表-LMLPHP

mysql - 不同类型的mysql通用表-LMLPHP

最佳答案

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

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

10-06 16:21