2011-12-04 13 views
0

CodeIgniterのカレンダークラスを使用して可用性カレンダーを作成しています。 私は、月の毎日のチェックボックスを生成しています:CodeIgniterカレンダー:チェックボックス値の保存と更新

[ ] Morning 
[ ] Afternoon 
[ ] Evening 

ユーザーが特定の日のために彼らの可用性を確認するか、オフにすることができます。 POST配列は次のようになります。

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のクエリを挿入することができます。

質問: 多くのクエリを実行することなく、テーブルを更新する最適なソリューションは何ですか?

ありがとうございます!

PS。 私はまた、データの格納方法について完全にはわかりません。将来jquery/ajaxを使って変更したときに更新したい場合は、おそらく1日の各部分の行が異なる場合があります。私はこれにもいくつかの考えを賛美するだろう。

答えて

1

私がやる最初のことは、データフィールドを分かり、人間が読めるようにすることです。このような何かが働くだろう:

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

第二に、私はデータベースに対して31行の挿入または更新を実行する心配はありません。あなたの環境についてはわかりませんが、データベースに対して何百、何千、さらには何万もの挿入/更新を更新するスクリプトを実行しています。私は、31クエリのような小さなものについては、パフォーマンスの問題に気づいたことはありません。

関連する問題