【问题标题】:How does the concept of repeat mode works重复模式的概念是如何工作的
【发布时间】:2014-01-13 06:25:57
【问题描述】:

在我正在工作的项目(在 codeigniter 中)中,用户可以创建一个任务并将其重复模式设置为(一次/每日/每周),其中
每日 - 任务将出现在未来每天同一时间
每周 - 任务将在每周一出现(例如,如果任务在周一添加)
一次 - 任务只会被添加今日份

现在用户创建的每个任务都会在数据库中创建一条记录,

例如,假设今天(13-01-2014)从 2:00-3:00 创建任务,重复模式为 Daily,这将创建一个针对此 (13-01-2014) 日期的记录,但我可以' t 当时为所有未来日期添加相同的任务。

用户也可以随时更改/编辑任务模式,此后不再重复。

谁能解释一下这种重复模式的工作原理?我的意思是什么时候真正为将来的日期创建任务,或者如何在数据库中维护相同的任务。

【问题讨论】:

    标签: php mysql codeigniter logic repeat


    【解决方案1】:

    “解释重复模式的概念”是一个相当模糊的要求。不过,我想我明白缺少什么。

    我假设您有某种taskId,它是每个任务的唯一键。您还需要batchId。您的最终结果将如下所示:

    +----------+----------+----------------------+
    |taskId    |batchId   |description           |
    |----------|----------|----------------------|
    |        1 |          | Some meeting         |
    |        2 |          | Another meeting      |
    |        3 |       1  | Daily meeting        |
    |        4 |       1  | Daily meeting        |
    |        5 |       1  | Daily meeting        |
    |        6 |       2  | Go to the gym!       |
    |        7 |       2  | Go to the gym!       |
    |        8 |       2  | Go to the gym!       |
    |        9 |       2  | Go to the gym!       |
    |       10 |          | Yet another meeting  |
    +----------+----------+----------------------+
    

    拥有batchId 可以让您在需要一次修改所有任务的情况下对这些事件进行分组,但如果需要,您仍然可以单独修改每个任务,这要感谢taskId


    这个batchId 的实际实现取决于你。例如,它可以是:

    • 动态生成的随机字符串
    • 第一个taskId 的哈希,以确保它们始终唯一
    • 单独表中的外键,自动生成 batchId 作为其键

    使用最适合您需要的一种,或自己制作一种。


    我刚刚编了taskIdbatchId。用对你有意义的东西替换它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-09
      • 2023-03-22
      • 1970-01-01
      相关资源
      最近更新 更多