【问题标题】:CodeIgniter calendar: storing and updating checkbox values per dayCodeIgniter 日历:每天存储和更新复选框值
【发布时间】:2011-12-04 12:34:42
【问题描述】:

我正在使用 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 个查询。

问题: 在不运行大量查询的情况下更新表的最佳解决方案是什么?

提前致谢!

附言。 我也不完全确定数据的存储方式。如果我想在将来使用 jquery / ajax 更改时更新它,那么一天中的每个部分可能会更容易。我也会对此有一些想法。

【问题讨论】:

    标签: php mysql forms codeigniter checkbox


    【解决方案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 或 UPDATE。我不确定您的环境,但我已经运行了针对数据库更新数百、数千甚至数万次插入/更新的脚本。我从来没有注意到小到 31 个查询的性能问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-11
      • 2011-02-27
      • 1970-01-01
      相关资源
      最近更新 更多