订购的物品是旅行路线,其属性为origin_city_id
,destination_city_id
,departure_date
。
还有另一个表pax
,其属性如adult
,children
。
一个花花公子旅行对成行。因此,应该存在将pax与行程相关的多对多关系。 某些情况可能类似于:
旅行_1 = ['pax'=> Pax_1,'行程'=> [行程_1,行程_2]]
旅行_2 = ['pax'=> Pax_1,'行程'=> [行程_1,行程_2,行程_3]]
Trip_3 = ['pax'=> Pax_2,'itineraries'=> [Itinerary_1,Itinerary_2]]
如果查询为['pax'=> Pax_1,'itineraries'=> [Itinerary_1,Itinerary_2]],则仅应返回Trip_1。
起初,我使用多对多关系将表trips
到itineraries
进行关联,但是后来发现建立这种关系很困难,因为我将有很多旅行记录。另外,由于我需要找到仅包含Itinerary_1和Itinerary_2的行程集,因此搜索可能难以实施。
我现在尝试的是将表itineraries
修改为带有外键next_itinerary_id
的自我参考表,以指示下一个行程,并在列first
中指示该行程是否为第一行程。之后,建立多对多关系要容易得多,我只需要将pax_id
与first_itinerary_id
关联起来。
但是当找到查询的路线集时,我需要查询每个路线,但我不确定我是否做对了。
我执行的任何步骤是否错误? 有没有更好的实现方法? 还是我可以学习参考?
谢谢。
答案 0 :(得分:0)
查看您尝试过的内容将很有帮助。如果您已发布模型和关系,则将更易于查看。如果遇到问题,应参考Laravel's many to many relationships作为参考
然后,您可以渴望在每个pax上加载itineraries
表。这样您就可以访问每个乘客的所有行程,并且可以根据您的要求进行搜索。