【发布时间】:2013-09-21 15:58:46
【问题描述】:
如果其他时候有人问过或回答过这个问题,我深表歉意 - 我认为我的搜索一直在试图在服务器上安排 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 行)。 “日期”表中的每一行都包含给定时间表的整个日期范围。
这是你的想法吗?
【问题讨论】:
-
这可能更适合 programmers.stackexchange.com,因为它没有引用特定的可解决问题,因此不适合 Stackoverflow。
-
@Danack:不,实际上是这样。这不是一个概念性的编程问题,而是一个实际的问题。并非Stack Overflow 上的所有问题都需要代码。
-
对我来说似乎是“我如何为我的数据建模”而不是“我如何编码”。但是不要关闭它,我正在起草一个答案......;)
-
我认为两者兼而有之,TBH。如果我们更进一步,也许我可以用更多的代码示例重新散列。
-
@IMSoP:这不是“我如何为我的数据建模”,而是“当我有以下规则时,我该如何处理这些数据?”