2017-01-12 4 views
-1

한 사람이 많은 서비스를 제공 할 수있는 예약 시스템을 만들고 싶습니다. 그러면 가능한 시간을 입력합니다. service1 : 1 월 1 일, 8.00-10.00, service2 : 1 월 8:15 - 9:30이 시간은 매년 반복됩니다. 문제는 사용자 예약 service1 또는 service2가 시간이 충돌하는 경우 (위의 예와 같이) 2 회는 현재 연도에 예약 된 것과 같이 표시됩니다.예약 시스템의 모든 서비스에 대해 간격 시간을 사용할 수 있는지 확인하는 방법

8.15 - 9.30이 8.00-10.00보다 예약되어 있고이 기간과 충돌하는 모든 시간은 사용 중지됩니다.

나는 laravel 5.2 (PHP/MySQL을)를 사용하고

+0

하는 HTTP를 참조하십시오 : // meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-query – Strawberry

답변

0

솔루션 : 나는 -mm-DD H "로 시작 시간과 종료 시간을 저장 service_times에 서비스 service_times 및 예약 테이블 을 만들어

: i "(해가 없으면 해마다 반복됩니다). 예약은 현재의 날짜에 대한 것입니다. 정상 datetime으로 저장했습니다.

검사 : service_start = 현재 +의 service_start service_end = CURRENT_YEAR + service_end

foreach 문 : 서비스 경우 (booking_start와 booking_end || 사이 service_start service_start과 service_end 사이 booking_start)

+0

나는 그렇지 않습니다. 귀하의 논리가 동시에 일어나는 booking_start와 service_start를 잡을 것이라고 생각하십시오. 겹침 또는 충돌에 대한 더 나은 테스트는 (booking_start

+0

더 복잡하면 누군가가 필요하면 전자 메일로 코드를 보낼 수 있습니다. – broadcastip