2011-12-04 2 views
0

CodeIgniter의 캘린더 클래스를 사용하여 가용성 캘린더를 만들고 있습니다. 나는 달의 매일 체크 박스를 생성하고 있습니다 :CodeIgniter 캘린더 : 하루에 체크 박스 값 저장 및 업데이트

[ ] Morning 
[ ] Afternoon 
[ ] Evening 

사용자 확인하거나 특정 일에 대한 자신의 가용성을 취소 할 수 있습니다.

Array (
[2011-12-01] => Array (
     [morning] => 1 
     [afternoon] => 1 
    ) 

[2011-12-02] => Array (
     [evening] => 1 
    ) 

) MySQL의 테이블에

데이터는 다음과 같을 것이다 :

ID | date  | data 
- - - - - - - - - - - - - - - 
1 | 2011-12-01 | 1-1-0 
2 | 2011-12-02 | 0-0-1 

데이터 값은 오전 - 오후 - 저녁 0입니다 포스트 배열은 다음과 같습니다 1.

특정 날짜 (0-0-0)에 대한 사용 가능 여부가없는 경우 행이 존재하지 않아도됩니다. 내 솔루션은 해당 월의 모든 행을 삭제 한 다음 각 날짜에 모든 값 (예 : 1-0-0)을 삽입하는 것입니다. 최대 31 개의 검색어를 삽입 할 수 있습니다.

질문 : 많은 쿼리를 실행하지 않고 테이블을 업데이트하는 가장 좋은 솔루션은 무엇입니까?

미리 감사드립니다.

추신. 또한 데이터 저장 방법에 대해 전적으로 확신하지 못합니다. 아마도 jquery/ajax를 사용하여 변경된 후에도 나중에 업데이트하려면 일별 각기 다른 행이 더 쉬울 것입니다. 나는 이것에 대한 약간의 생각을 appriciate 할 것이다.

답변

1

먼저 할 일은 데이터 필드를 사람이 읽을 수 있도록 구분하는 것입니다. 이런 식으로 뭔가가 작동합니다 :

ID | date  | is_morning | is_afternoon | is_evening 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
1 | 2011-12-01 | 1   | 1   | 0 
2 | 2011-12-02 | 0   | 0   | 1 

둘째, 나는 데이터베이스에 대해 31 건의 INSERT 또는 업데이트를 실행하는 방법에 대한 걱정하지 않을 것입니다. 귀하의 환경에 대해 잘 모르겠습니다 만, 데이터베이스에 대해 수백, 수천, 심지어 수만 개의 삽입/업데이트를 업데이트하는 스크립트를 실행했습니다. 31 쿼리만큼 작은 성능 문제는 절대로 발견하지 못했습니다.