2014-12-27 3 views
0

의 배열에 관한 구조적인 해결책 나는 다음과 같은 UI를 가지고 :MySQL의 : 순간

enter image description here

목표는 주최자가 전체 년 동안 재발 활동을 입력 할 수 있으며 주최자를 선택하기로 결정 수 인 재발 이벤트에는 평일을 적용 할 수 있습니다. 이 완벽, 일회성 이벤트의

activity_id | start_date | end_date 

:

내 데이터베이스는 정기적 인 구조를 가지고있다. 3 주간의 기간에도 불구하고 여전히 괜찮습니다.
그러나 1 년 동안 단일 저장에서 데이터베이스에 입력해야하는 간격 (레코드)이 수백 개일 수 있음을 의미합니다.

저는 이것이 좋은 해결책이라고 확신하지 못합니다. 문제에 대해 조언 해 주시겠습니까?

+0

나에게 좋은 해결책처럼 보입니다. – Strawberry

+0

정말요? 백 엔드가 처리하기에 무거울까요? 부울 필드 (월요일 - 일요일)로 평일을 데이터베이스에 저장하고 date_interval을 그대로 저장하려고 생각했습니다. 이것에 대해 어떻게 생각하세요? – Trace

+0

흠, 아마도 나는 당신의 의도를 오해했습니다. 예, date_start, date_end 및 recurrence (해당 범위 내)를 저장할 수 있습니다. 1 (월요일)에서 127까지의 비트 값이 반복 될 수 있습니까? (매일). 그러나 '2 주에 한 번'과 같은 다른 가능성을 허용하지 않습니다. – Strawberry

답변

1

데이터로드가 걱정된다면, 위의 구조를 수정하여 이벤트가 발생하는 요일 (activity_id | start_date | end_date | days_of_week)을 기록하고 해당 이벤트에 대해 DB에 행이 하나만 있어야합니다. 그런 다음 사용자가 특정 일에 이벤트가 발생하지 않고 UI에서 해당 항목을 "삭제"한다고 결정하면 발생을 제거하는 것이 아니라 실제로 다른 테이블에 정전 일을 추가하는 것이므로 사용자는 "블랙리스트"테이블을 만들 것입니다. 그런 다음 블랙리스트 테이블의 행을 기반으로 UI에서 발생을 프로그래밍 방식으로 제거 할 수 있습니다. 이것이 의미가 있기를 바라며, 명확한 설명이 필요하면 알려주십시오.

+0

감사합니다. 몇 가지 옵션이 더 있습니다. 아마도이 게시물에 제안 된대로 작업 시간을 저장하고 워크 플로를 따르게됩니다. http://stackoverflow.com/questions/5183630/calendar-recurring-repeating-events-best-storage-method – Trace