나는 당신이 나를 도울 수 있다고 생각하는이 문제가 있습니다.
추신 : 나는 이것을 어떻게 부르는지 잘 모르겠습니다. 따라서 더 적합한 제목을 찾으면 편집하십시오.
배경
- 나는 버스 노선을 검색하기 위해이 응용 프로그램을 만들고 있습니다.
- 버스 노선은 3 자리 숫자이며 고유하며 변경되지 않습니다.
- 정지 A에서 정지 B까지 라인을 검색 할 수 있어야합니다.
- 사용자 인터페이스는 이미 유효한 중지 이름 만 사용하도록 사용자에게 힌트를주었습니다.
- 경로에 직통 노선이있는 경우 표시 할 수 있어야하며, 그렇지 않은 경우 2 줄 및 3 줄 조합을 표시해야합니다.
예:
지점 A에서 지점 D로 이동해야합니다. 프로그램에 다음이 표시되어야합니다.
- 직통 광고가있는 경우
- 그렇지 않으면 AC, CD와 같은 대체 2 라인 콤보를 표시하십시오.
- 2 라인 콤보가없는 경우 AB, BC, CD의 3 라인 콤보를 검색하십시오.
물론, 버스 라인 번호와 버스 전환시기를 앱에 표시해야합니다.
내가 가진 것 :
내 데이터베이스는 다음과 같이 구성됩니다 (간단한 실제 데이터베이스에는 위치 및 시간이 포함됩니다).
+-----------+
| bus_stops |
+----+------+
| id | name |
+----+------+
+-------------------------------+
| lines_stops_relationship |
+-------------+---------+-------+
| bus_line | stop_id | order |
+-------------+---------+-------+
여기서 lines_stops_relationship
버스 라인과 정지 사이 대다 관계를 설명한다.
순서, 정지가 한 줄로 나타나는 순서를 나타냅니다. 모든 선이 앞뒤로 이동하는 것은 아니며 순서에 의미가 있습니다 (순서 2의 점 A는 순서 1의 점 B 뒤에옵니다).
문제
- 우리는 노선이 경로를 쉽게 통과 할 수 있는지 알아냅니다. 올바른 순서로 두 지점을 통과하는 단일 라인을 검색하십시오.
- 2/3 라인 콤보가 있는지 어떻게 알 수 있습니까? 소스 스탑과 일치하는 라인과 목적지 스탑을위한 라인을 검색하고 이들 사이에서 사용자가 버스를 전환 할 수있는 공통 스탑을 얻을 수 있는지 확인하려고했습니다. 그 기억을 어떻게 기억합니까?
- 3 라인 콤보는 더 까다 롭습니다. 소스 라인과 목적지 라인을 찾으면 어떻게됩니까? 2 개의 정류장이있는 줄을 찾으십시오. 그러나 다시 한번, 정류장을 어떻게 기억합니까?
tl; dr
다시 사용하기 위해 쿼리 결과를 어떻게 기억합니까? 단일 쿼리 (각각 1 줄 경로에 대한 쿼리, 2에 대한 쿼리 및 3 줄 콤보에 대한 쿼리)로 이것을 달성하기를 희망합니다.
참고 : 누군가 내가 내가 가진 것과 완전히 다른 접근법을 제안하더라도 상관 없습니다 . 나는 어떤 해결책에도 열려 있습니다.
쿠키 및 공감 비에 대한 지원을 제공합니다. 미리 감사드립니다!