mysql关系表在x个表之间拆分id

时间:2014-04-23 02:58:08

标签: mysql sql database database-design primary-key

通常的做法是在许多表之间拆分ID吗?

实施例

+---------------------------+
| load                      | 
+---------------------------+
| load_id                   |
|                           |
+---------------------------+
      |              |
+-----------+ +-------------+
| load_plane| | load_truck  | 
+-----------+ +-------------+
| plane_id  | | truck_id    |
| load_id   | | load_id     |   
|           | |             |
+-----------+ +-------------+
      |              |
+-----------+ +-------------+
| plane     | | truck       | 
+-----------+ +-------------+
| plane_id  | | truck_id    |
|           | |             |   
|           | |             |
+-----------+ +-------------+

load_id由许多产品组成。它可以通过普通,火车,公共汽车,卡车或宇宙飞船运输哦,你为什么不乘船。只是想知道其他人的想法是什么。

1 个答案:

答案 0 :(得分:2)

在这种情况下,您在装载和飞机,装载和卡车,装载和船之间存在多对多的关系。我认为如果你使用某种类型的列来识别传输类型会更好。 所以你现在可以使用3个表来完成它。

+---------------------------+
| load                      | 
+---------------------------+
| load_id                   |
|                           |
+---------------------------+

+-------------+
| transport   |
+-------------+
| id          |
| type        |  
|             |
+-------------+

+---------------------------+
| load_transport            | 
+---------------------------+
| load_id                   |
| transport_id              |
+---------------------------+