【发布时间】:2016-06-20 08:50:16
【问题描述】:
我有一个任务调度应用程序,它允许人们创建两种类型的任务...
•严格 - 具有设定开始时间和持续时间的任务 •弹性任务,有持续时间,但没有具体的开始时间
了解弹性任务的运作方式也很重要 - 弹性任务会在您最近打开的时间在您的一天中不断地重新安排自己……例如,如果您今天安排的唯一任务是弹性任务,例如“Go锻炼 - 持续时间:60 分钟”,您在下午 4 点打开应用程序,如果您不单击表示您已完成任务的复选框并在下午 5 点再次打开应用程序“开始锻炼将被重新安排到下午 5 点到 6 点,这样你打算完成的事情就会不断地出现在你的面前,并试图让自己适应你生活的空白。
当用户查看他们的日程安排时,我会执行以下步骤: • 完成一系列严格的任务 •抓取所有弹性任务的数组 • 遍历每个严格的任务,计算当前被循环任务的结束时间和下一个任务开始时间之间的时间间隔有多大。 •如果存在间隙,遍历弹性任务并查看它们中的任何一个是否适合所讨论的时间间隙。如果 flex 任务足够小以适应时间间隔,则将其添加到当前循环的任务和下一个任务之间的 strictTasksArray。
只要在弹性任务方面不需要任何类型的排序,这很有效,但现在我们添加了用户将弹性任务拖放到特定相对顺序的功能,也就是如果我有任务A B C D 我将 Task D & B 拖到前面,这样它现在的 D、B、A、C 需要保存该排序,这样如果您关闭并重新打开应用程序,应用程序仍会记住尝试将任务 D 放入,然后by B, A & C .....但是考虑到排序是相对的而不是严格的,我很难想出一种有效的方法......任何想法如何在 SQLIte DB 中保存相对排序而不必更新每个每次用户拖放任务并更改相对顺序时任务的数据库记录?
【问题讨论】:
标签: ios sql sqlite relational-database