안녕하세요.
다이어리 관련 프로그램을 개발중인데, db설계 관련하여 다른 분들의 의견을 듣고 참고하고자 질문 드립니다.
일정 등록시 반복옵션이 있는데, 매일 반복이 될 수도 있고, 월~일요일까지 복수의 특정요일에만 반복되도록 할 수도 있습니다.
예를 들어 월요일에만 일정이 실행될 수도 있고, "화,목"에 일정이 실행될 수도 있고, "일,월,화,수,목,금,토" 모두에 실행이 될 수도 있습니다.
그래서 아래처럼 설계하려다 보니, select가 한번에 되지 않고, 특정 요일일정 검색시 코드상에서 다시 처리해야 하는 번거로움이 있을거 같습니다.
그렇다고 아래 테이블에 각 요일별 컬럼을 따로 두는 것도 왠지 디스크를 많이 차지할 거 같아 탐탁치가 않은데요,
다른 분들께서는 이런경우 db schema를 어떻게 설계하는지 궁금합니다.
의견 좀 부탁드리겠습니다.
create events{
idx int, //인덱스
name varchar, //일정명,
repeat varchar //"1,2," --weekday 숫자로 콤마로 구분하여 저장
}
Comment 1
-
항해자™
2014.02.24 23:12
create table dbo.tEventDetail
(cEventNo int not null
,cLoopType tinyint not null
,cAlertNo smallint not null
,cStartTime datetime not null
,cFinishTime datetime not null
)
cLoopType - 반복형식
cAlertNo - 반복날(요일,일자)
반복형식
0 : 지정일자 - cAlertNo에 날짜 입력
1 : 매주 - cAlertNo에 요일번호 입력
2 : 매달 - cAlertNo에 날짜 입력
3 : 매년 - cAlertNo에 월일 입력(ex.0209)
더불어 시작, 마침일시를 활용하면 기간도 관리 되겠네요,,