容纳SQL表中的航点

时间:2014-07-27 12:46:04

标签: mysql sql

我目前正在创建一张存放出租车预订的桌子。

enter image description here

关键

  

ID - 预订ID

     

CustId - 正在接受的客户的身份

     

DriverId - 正在接听客户的司机的身份

     

PickupAddr - 取件位置

     

PickupLat - 拾取位置的纬度坐标

     

PickupLon - 拾取位置的lon坐标

     

DropoffAdr - 放下位置

     

DropoffLat - 下降位置的lat坐标

     

DropoffLon - 衰落位置的lon坐标

     

里程 - PickupAddr和DropoffAddr之间的距离,包括任何   其他站点

     

停止 - 旅途中的航点/停靠次数

     

价格 - 客户在旅程中必须为此部分支付的费用

我现在面临的问题是我不知道如何处理航点。

e.g。如果你已经被A接到B去,但决定在旅途中停在A1和A2去挑选一些朋友(当然事先预订)

重构当前表格以适应这种情况的最佳方法是什么?

它应该作为单独的行还是列?由于这些数据是动态的(即,人们无法预测客户中途旅行的接送/下降次数),我应该做些什么。

1 个答案:

答案 0 :(得分:1)

由于这是一对多关系,因此它应该是一个单独的表:

  • id - 航点ID
  • booking_id - FK到booking
  • sequence - 在旅程中订购此航点
  • addr - 航点的地址
  • lat - 航路点的纬度
  • long - 航点的经度

如果需要,您可以从PickupXXX表中删除DropoffXXXbookings列,只需使用航点表即可。皮卡可能是第一个航点,而下降将是最后一个。