2011-02-09 2 views
8

저는 asp mvc 3, jquery full calendar, ms sql sever 2008 및 C#을 사용하고 있습니다.되풀이 일정을 만드는 방법은 무엇입니까?

반복 일정을 만드는 방법을 아는 사람이 있는지 궁금합니다.

어떻게 만드는지 잘 모르겠습니다.

예를 들어 Google 캘린더에서 약속을 매년 반복해서 만들 수 있습니다. 나는 그들이 데이터베이스에서 그 약속을 X 번 생성하는 것은 의심 스럽다.

나는 내 DB에서 한 행을 가질 수 있을지 궁금해하며 필요할 때이를 호출하는 방법을 알고있다.

또한 일정 및 전망 등을 1 개월에 반복과 같은 옵션을 반복 많은, 지난 달과

이 가지고있는 라이브러리 빌드가 있습니까이 구글? 아니면 처음부터 다시 만들어야합니까?

P.S

내가 공유 호스트에서 오전 그래서 해결책이 제한된 권한으로 작동한다.

+0

이 질문이 도움이 될 수 있습니다 : http://stackoverflow.com/questions/1274003/adding-recurring-event-to-google-calendar-via-xml – jrummell

+0

이것을 구현 했습니까? 나는 또한 동일 할 필요가있다 –

답변

9

가능한 모든 반복 이벤트를 생성하면 이론적으로 사용자가 볼 수 없었던 이벤트로 저장 용량을 채울 수 있습니다 (999,999,999,999,999,999,999 번째 생일을 축하합니다!).

그것은 조금 더 많은 작업이 필요하지만이 솔루션은 기본적으로 당신이 달력 구축으로 캘린더 항목을 링크 반복 규칙 테이블 (또는 테이블)에 저장하는 것입니다 :의 매일을 위해

을 " 1 주일마다 반복되는 이벤트가 있는지 확인하십시오. 그 주에 반복되는 이벤트가 있는지 확인하십시오. " "1 년마다 매월 반복되는 이벤트를 확인하십시오.

당신이해야 할 수표의 수는 원하는 반복의 유형과 기간에 따라 다릅니다.

supressing 이벤트의 경우, 그것은 또 다른 테이블 목록에서 제외되어야하는 날짜/시간을 나타냅니다. "월요일을 보여주는 경우 supression 테이블에 나열된을 제외한 개월에 반복 모든 이벤트를 표시"

코멘트 후속 :

글쎄, 당신은 표준 일정 항목 테이블이 줄 핵심 정보를 저장하는 . 날짜/시간 등 ... 그런 다음 반복 정보를 저장하는 적어도 두 개의 다른 테이블. 귀하의 반복 규칙을 저장하는 하나. "매주 월요일", "달의 첫 날", "매년", 등 ..., 그리고 일정 항목 및

때문에 규칙 사이에 링크 세 번째 테이블 :

calendar entries table <---> link table <---> repeat rules table 

쿼리 고려해야 할 날짜에 적절한 규칙이 나오고 표시 할 캘린더 항목의 ID를 제공하도록 사물을 만드는 문제입니다. 전달한 날짜를 기반으로 적절한 규칙에 동적으로 링크되는 멋진 쿼리를 수행하면 추악해질 수 있습니다.

+0

@Marc B - 당신은 더 많이 설명 할 수 있냐? Like는 매일 매주 반복됩니다. 그렇다면 캘린더를 어떻게 구축 할 수 있을까요? "반복 월요일"다음 모든 일주일에 4 내장 된 모든 작업을 찾기 위해 쿼리를 수행 할 것이라고? – chobo2

+0

@Marc B -이 링크 테이블은 단지 어떤 id (어떤 규칙이 사용되는지)를 가지고있을뿐입니다. 그런 다음이 테이블에 대한 쿼리를 사용하고 어떤 규칙이 사용되고 있는지 확인하십시오. – chobo2

+0

기본적으로 예. 규칙 링크에는 "다음 10 개월 동안 만"또는 "2011 년에 반복 중지"등과 같은 추가 정보가있을 수 있지만 기본적으로 - 일부 일정 항목 및이를 반복하는 방법 /시기에 대한 추가 데이터가 있습니다. –

0

누군가 이와 같은 질문을하면 "SQL에서 시간 중심적 데이터베이스 애플리케이션 개발하기" " 온다. 합법적으로 free PDFAmazon으로 사용할 수 있습니다.

0

# google-calendar 태그가 포함되어 있으므로 작업중인 것으로 생각됩니다. Google 캘린더는 REST 및 JSON 호출을 사용합니다. 다음은 예입니다 :

{ 
    "summary": "Daily project", 
    "start": { 
    "dateTime": "2011-12-12T10:00:00", 
    "timeZone": "Europe/Zurich" 
    }, 
    "end": { 
    "dateTime": "2011-12-12T11:00:00", 
    "timeZone": "Europe/Zurich" 
    }, 
    "recurrence": [ 
    "RRULE:FREQ=DAILY;COUNT=5" 
    ] 
} 

이 오전 11시 오전 10시에서 매일 발생하는 '데일리 프로젝트'라는 제목의 이벤트를 만들고, 연속 5 일 동안 반복합니다.

C#을 사용 중이므로 Google API (v3) 이벤트 객체를 사용할 수도 있습니다. 여기에는 재귀 이벤트를 만드는 데 필요한 모든 속성이 있습니다. 그러나 재귀 규칙이 어떻게 구성되어 있는지 파악하려면 JSON 구조를 살펴 봐야합니다.

Google 캘린더를 사용하지 않는 경우 API를 가이드로 사용할 수 있습니다. 실제 인스턴스가 아닌 반복 된 이벤트에 대한 규칙을 만드십시오. 재귀 규칙이없는 단일 이벤트 및 반복되는 이벤트 규칙을 기반으로 새 이벤트에 대해 매분 데이터베이스를 쿼리하려면 스레드 또는 타이머를 사용하십시오.

관련 문제