service_no | member_no | lesson_date |
123 | 11111 | 20130101 |
123 | 11111 | 20130203 |
123 | 11111 | 20130206 |
123 | 11111 | 20130220 |
3333 | 22222 | 20130201 |
3333 | 22222 | 20130301 |
222 | 22222 | 20130201 |
service_no | status | status_date |
123 | EDUST00001 | 20130120 |
123 | EDUST00001 | 20130204 |
123 | EDUST00004 | 20130221 |
3333 | EDUST00001 | 20130209 |
3333 | EDUST00002 | 20130309 |
222 | EDUST00003 | 20130201 |
service_no | sdate(교육시작) | edate(교육끝) |
123 | 20130101 | 20130119 |
123 | 20130203 | 20130203 |
123 | 20130206 | 20130220 |
3333 | 20130201 | 20130208 |
3333 | 20130301 | 20130930 |
222 | 20130201 | 20130930 |
아 시작을 제외 하는건 아닙니다. 제가 잘못 답변 드렸나봅니다. ^^
조금 더 설명을 하겠습니다.
일단 상태코드를 정리해 드립니다.
1.일시중단(EDUST00001)
2.시작(EDUST00002)
3.종료(EDUST00003)
4.같은지역으로 이동(EDUST00011)
5.다른지역으로 이동(EDUST00012)
EDUST00011,12의 경우는 다시는 상태를 변경 할수 없습니다.
하지만 나머지 경우들은 계속 변동이 가능합니다.
예를 들어
1.시작-일시중단-시작-종료
2.시작-종료-시작-일시중단
3.시작-종료-시작
4.시작-일시중단-시작
5.시작
요런 등등의 경우가 있는데요 더 길게 하는 경우도 있겠지요
단 일시중단중에 종료는 안되며 반대의 경우(종료-일시중단)도 일어날수 없는 경우 입니다.
반드시 시작후에 다음에 상태를 변경해야 합니다.
현재 회원교육이 시작 중이라면 특정일자까지(20130930)로 보면 됩니다.
이해 하셨는지 모르겠습니다.ㅜㅜ
궁금하신 사항있으시면 질문주세요..꼭 해야 하거든요..
마농님 및 다른 회원님들 부탁드립니다~~ㅜㅜ
그러게요~~첫게시물 과 점점 멀어지는듯한..
괜찮습니다. 데이터만 정확히 나온다면 ..ㅎㅎ
LESSON 테이블은 교육에 관한 테이블 입니다.
LESSON_DATE는 교육을 진행한 날짜 입니다.
한회원의 교육한 날짜를 적는것이구요 다른 데이터도 물론 있지만
교육일을 뽑는것이기때문에 날짜만 적어 둔겁니다.
SERVICE_LOG 테이블은 서비스 이력으로 한 회원에 대한 서비스 상태를 체크하기 위해
만들었습니다. 한 회원이 교육서비스를 받는 동안 무슨 일이 있엇는지 알기위해서입니다.
중간에 일시중단 했는지 아니면 종료하고 다시 시작했는지 ,다른지역으로 이동을 했는지 등등을 알기위해서 입니다.
첫시작은 대기에서 시작하지만 서비스이력에는 데이터가 쌓이지 않습니다.
서비스 시작(EDUST00002)이 최초 서비스이력으로 동록되면서 교육일지를 작성할 수 있습니다.
맘같아선 네이트원격이라도 열어서 보여드리고 싶네요..ㅜㅜ
서비스 이력에 시작과 종료가 모두 들어 있다면?
부정확할수도 있는 교육 일지는 불필요 한게 아닌가 싶네요?
서비스 이력이 정확하게 들어 있다면 다음과 같이 들어 있겠지요.
service_no status status_date
123 EDUST00002 20130101 -- 시작
123 EDUST00001 20130119 -- 중단
123 EDUST00002 20130203 -- 시작
123 EDUST00001 20130203 -- 중단
123 EDUST00002 20130206 -- 시작
123 EDUST00003 20130220 -- 종료
그게 아니라 이런 저런 예외 상황들이 발생된다면...
위와 같은 테이블 구조로는 힘든게 아닌가 생각되는데요.