mysql 常见 table 不同类型

mysql common table for different types

我想在 mysql 中为两个不同的 table(例如 sportscartank).两者都需要修理,我的问题来了。我不能只有 table repair 中的 table 和 sportscartank 这两个 id (PK),因为我可以'决定 ID 1 是来自 sportscar 还是来自 tank。所以我在 table repair 中也添加了 type_id。所以 vehicle_id = 1type_id = 2 应该定义它来自 table tank,车辆 ID 是 1。到目前为止一切顺利,但不幸的是它不起作用。我不知道为什么,但它似乎不以某种方式接受 vehicle_idtype_id 作为复合键。在SqlYog中不允许我选择相应的记录,因为它在相关的table中总是空的。我尝试了很多不同的组合,甚至在 tables sportscartank 中将 idtype_id 设置为复合 PK,但没有用.我究竟做错了什么?你能给我指出正确的方向吗?谢谢你。

正如@Jorge 所说,您的 Repairs table 需要 link 到基数 Cars(或 Vehicles)table , 存放跑车和坦克。类似于 Vehicles(vehicle_id, vehicle_type, other_atts).

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