2012-04-26 6 views
0

교육 기관에서 사용할 웹 사이트를 개발하기 위해 PHP, MySQL을 사용하고 있습니다.PHP/MySQL 강의 할당

이 기능 중 하나는 배치를 만들 때 강의를 할당하는 것입니다. 시작 배치에 강의를 할당하기 위해 시스템은 사용 가능성 및 자격에 따라 사용 가능한 강의를 프롬프트합니다. 코스 코디네이터가 결정을 내립니다.

내 문제는 시간 슬롯 주어진 특정 요일에 강의의 가용성을 확인하는 방법이다.이 보여 어디 테이블에 강의 일정을 유지할 계획입니다

(타임 슬롯이 고정되지 기간을 변화한다) lecture_Id, Batch_Id, day, start_time, end_time, start_day, end_day.

그런 다음 가용성 확인시 사용 가능한 lecture_Id를 확인하기 위해 복잡한 쿼리를 작성해야합니다. 나는 아직 그것을 알 수 없었다.

다른 스마트 방법이 있습니까?

감사

+0

4 개의 시간 필드를 MySQL의 두 개의 DATE 필드로 변경하는 것이 좋습니다. 이렇게하면 복잡성이 줄어 듭니다 _ _! – nyson

답변

0

당신이 정보를 저장하기 위해 제안하고있는 방법은 내가 그 일을 생각하려는 첫 번째 방법입니다 - 복잡한 쿼리하지만 그렇게 나쁘지 않습니다.

그래서 제대로 이해한다면 lecture_schedules 테이블과 1 : 1의 관계로 다른 테이블에 강의가 저장되어 있습니까? 그렇다면 지정된 시간 범위에 대한 강의 세부 정보가 표시됩니다. 이 같은

뭔가 : 당신이 당신의 실제 스키마를 반영하기 위해 테이블 ​​이름과 열 이름을 편집해야하고, 시간 범위 값으로 yourstarttimeyourendtime를 대체 할

SELECT * FROM lecture_schedules 
     INNER JOIN lectures USING(lecture_id) 
     WHERE start_day<=DAY(yourstarttime) AND end_day>=DAY(yourendtime) 
     AND start_time<=yourstarttime AND end_time>=yourendtime; 

참고.

희망이 도움이

편집 :이 쿼리는 스키마의 열 및 그 열의 데이터 유형에 대한 몇 가지 가정을 만드는 - 단지 & 붙여 넣기를 복사하고 처음에게 일을 기대하지 않습니다 :)를

관련 문제