如果在其他时候有人问过或回答过这个问题,我深表歉意 - 我认为我的搜索一直在试图在服务器上安排 PHP 任务的人中迷失,所以我找不到我要找的东西。
因此,作为我的第一个自建应用程序(不是指导或指导的应用程序),我正在尝试构建一个营地调度程序。我已经构建了一些东西来登录,添加或删除小屋/组,添加活动/组或删除它们,并生成日期范围,并从该数据中选择您想要安排的那些事情,然后发送它到一个调度程序,然后创建一个新的 MySQL 表和......
这就是我不断停下来想知道我是否正确考虑这一点的地方。
- 每次新的时间表运行是否应该创建一个新表 - 这是可扩展的(它是否可扩展对我来说并不重要,但显然对其他项目很重要)?
- 在将数据输入 MySQL 表之前,我应该使用数组进行排序,还是可以连续输入,然后输入下一个项目作为其排序?
最终,我不能只做一个循环,因为我需要添加其他因素,例如:
- 该小组是否在最近 X 个预定周期内完成了这项活动?如果是这样,请选择另一个。
- 不要总是从活动列表的顶部开始,否则有些活动将始终是日程安排,而有些活动将始终是第一个被留空的活动 - 甚至可以根据某些因素确定重要性的优先级。
- 最初,我只想安排团体日期的活动,但我还想添加一个功能,以便能够考虑另一个时间表(小木屋进行的独木舟旅行),以将它们从这些天的预定列表中排除他们会消失的。
感谢我在排序逻辑方面获得的任何帮助。谢谢。
编辑: 所以根据您的建议,我认为我有以下表格,其中只有两列 ID 和名称(用户可以随时更新/编辑):
cabins
activities
然后,我添加另一个表,其中包含多达 56 列日期条目(8 周)+ 名称和用户列,称为:
dates
然后我有另一个表叫:
schedule
其中有这样的列:
ID (primary Key)
User (logged in user that created this)
schedule_name (user defined name of schedule)
cabin (foreign key of a cabin)
period_001 (foreign key of first date in corresponding 'dates' table)
activity_001 (foreign key of an available activity which has been chosen to go here)
period_002 (...)
activity_003 (...)
etc...
然后 PHP 逻辑将要求按名称和用户分组的行,这样对于给定用户的每个时间表名称,营地中每个选定的小屋都会有一行(例如,25 行对应 25 个小屋)。“日期”表中的每一行都包含给定时间表的整个日期范围。
这是你的想法吗?