쿼리 관련 조언을 듣고 싶습니다.
배송이라는 테이블에는 3개의 컬럼을 갖고 있습니다.
출발지 , 도착지 , 가격 이 있습니다.
배송자가 출발지를 서울 강남 , 도착지 는 부산 서면 이라고 했을때.
검색은 출발지 강남, 도착지 부산 이렇게 검색하면 됩니다. 아주 심플 합니다.
저희는 이런검색이 아닌 경로를 뽑아주는 쿼리를 만들고 싶습니다.
검색 조건에
출발지 강남 근처 5km 안, 도착지는 부산 서면. 이라고 가정하고 .
강남 근처 5km 안에 있는것들을 뽑아내서 경로를 만들어 줄려고 합니다.
강남 근처 5km 안에 있는것을 찾고 , 그안에서 도착지를 검색 하여 도착지 근처에 있는 지역을 찾고 , 찾고 해서
부산 서면 까지 n 개의 경로를 보여줄려고 합니다.
서울 역삼 출발 -> 경기로 용인 도착 -> 분당 출발 -> 대전 도착 -> 대전 출발 -> 부산 서면 도착.
이러한 경로를 뽑아주고 싶습니다.
어떤식으로 하는게 좋은지 조언 부탁드립니다.
감사합니다.
Comment 1
-
건우아빠
2015.12.18 15:04
테이블 구성부터가 완전 달라지지 않을까 생각됩니다..
경로를 예측하고 최적의 경로를 구축하는 형태라면 엄청 복잡할듯 합니다..
강남에서 부산까지 가는 경로는 엄청난 경로가 존재 할수도 있습니다.
그중 최적의 경로를 찾는 방법등도 모색해야 할겁니다...
각 출발지에서 갈수 있는 도착지를 먼저 등록을 해야 하겠죠...
강남-> 분당
강남->수원
분당->수원
수원->창원
수원->부산 이라고 있다면
강남-> 부산 까지 가는 노드는
강남->분당->수원->부산
강남->분당->수원->창원->부산
강남->수원->부산
강남->수원->창원->부산
각지점간의 거리가 등록 되어 있다면 거리의 합이 척적인 경우를 나타 낼수는 있을겁니다.
어떤 경우는 강남에서 수원갔다가 분당갔다가 인천 갔다가 대전갔다가 .. 부산으로 가는 뺑뺑돌다가 가는 노드도 있겠죠...
쉽지 않는 구성이 될겁니다. 경우의 수 (중복 배제) 나열 하는 방법 이 있겠네요...
각지역 별로 가야하는 경우의 수 테이블을 만들어 놓고 그걸 조회하는 걸 만드는게 효율적이지 않을까 봅니다... 좀 쉽겠죠...
물론 경우의 수를 만들는 쿼리를 짜시는건 동일 하지만 ...
또한 5KM 이내 는 경유지 개념으로 반드시 경유해야 하는 경로로 보면 되듯합니다....
네비게이션의 경로 예측까지는 아니여도 업무상 이라면 미리 케이스를 만들어 놓고 그걸 조회하는게 좋을듯 합니다...