>

주문한 항목은 여행 일정이며 origin_city_id 속성이 있습니다. destination_city_id departure_date .

또 다른 테이블 pax 가 있습니다   adult 와 같은 속성을 가진 children .

pax-itineraries 쌍은 여행을 형성합니다. 따라서 여정과 여정에 관한 다 대다 관계가 있어야합니다. 어떤 경우는 다음과 같습니다.

Trip_1 = [ 'pax'=>Pax_1, 'itineraries'=>[Itinerary_1, Itinerary_2]]

Trip_2 = [ 'pax'=>Pax_1, 'itineraries'=>[여정 _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 와 함께 .

그러나 쿼리 여정 세트를 찾을 때 모든 여정을 쿼리해야하는데 제대로 수행하고 있는지 확실하지 않습니다.

내가 한 단계가 잘못 되었습니까? 더 나은 구현이 있습니까? 아니면 공부할만한 참고 자료가 있습니까?

미리 감사합니다.

  • 답변 # 1

    내가 시도한 것을 보는 것이 도움이 될 것이다. 모델과 관계를 게시 한 경우보기가 더 쉽습니다. 문제가 발생하면 Laravel의 다 대다 관계를 참조해야합니다

    그러면 itineraries 를 열망 할 수 있습니다  각 인원에 대한 테이블. 이렇게하면 각 인원에 대한 모든 여정에 액세스 할 수 있으며 요청한대로 검색 할 수 있습니다.

관련 자료

  • 이전 ios - MPMediaPlayer Swift 4를 사용한 페이드 (애니메이션) 볼륨
  • 다음 r - 길이가 다른 두 데이터 프레임을 병합 할 때 특정 열 반복 (붙여 넣기?)