问题标签 [timetable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 交通时刻表系统数据库设计
自从我在大学二年级的时候上数据库设计课已经有一段时间了。而且我在此期间没有做过任何设计,所以我的技能目前充其量是生疏的。我已经开始从事一个涉及铁路时刻表系统的个人项目,并且似乎被困在类似于这样的表格设计上 -
除了 Time 字段和 TrainHopTbl 中的 HopIndex 之外,大多数字段都是字母数字的。如您所见,初步设计非常粗糙,远未完成。
用户将能够根据列车名称/编号或指定源站和目的地站来查找列车。第一个查询可以轻松处理,但我在为第二个搜索编写查询时遇到问题,其中用户提供 src/dest 对,服务器返回在该路线上运行的火车列表。此信息将从 TrainHopTbl 中提取,其中包含特定火车的跳数列表,如下所示 -
如果用户输入WDC/NYC作为 src/dest 对,则查询应返回 Train Number 121,因为它是有效路线。
任何关于数据库设计的指针/链接/书籍建议都会有所帮助。哎呀,在这一点上,即使是可运行的查询或整个重新设计也会有所帮助,因为我似乎陷入了难以摆脱的陈规之中,这完全阻碍了我的进步。
php - 有一个双时间表系统
我正在尝试做一个双时间表系统的事情。
基本上,这是针对学校项目的,有些学校有第 1 周和第 2 周的系统。
这种工作方式是每周交替进行,因此在 9 月初,学校周从第 1 周开始,下周是第 2 周。
我将如何在 PHP 和 MySQL 中实现这一点?
python - Worker/Timeslot 置换/约束过滤算法
希望你能帮助我解决这些问题。这对工作没有帮助——它是为了一个由非常努力的志愿者组成的慈善机构,他们真的可以使用一个比他们目前拥有的更容易混淆/烦人的时间表系统。
如果有人知道一个好的第三方应用程序(当然)可以自动执行此操作,那几乎一样好。只是......请不要建议随机的时间表东西,比如预订教室的东西,因为我认为他们做不到。
提前感谢您的阅读;我知道这是一个大帖子。不过,我正在尽最大努力清楚地记录这一点,并表明我自己已经做出了努力。
问题
我需要一个工人/时隙调度算法,它为工人生成轮班,它符合以下标准:
输入数据
加工
从上面看,班次和工人是要处理的两个主要输入变量
每个班次都有所需的最小和最大工人数量。满足轮班的最低要求对成功至关重要,但如果所有其他方法都失败了,手动填充空白的轮班比“错误”要好:) 主要的算法问题是不应该有不必要的空白,当足够的时候工人可用。
理想情况下,一个班次的最大工人数量将被填补,但这是相对于其他约束的最低优先级,所以如果有什么必须给予的话,应该是这个。
灵活的约束
这些有点灵活,如果找不到“完美”的解决方案,它们的界限可以稍微扩大一点。不过,这种灵活性应该是最后的手段,而不是被随意利用。理想情况下,灵活性可以通过“fudge_factor”变量或类似变量进行配置。
- 两个班次之间有一个最短时间段。因此,例如,不应将工人安排在同一天进行两班倒。
- 一个工人在给定的时间段(比如一个月)内可以做的最大轮班次数
- 一个月内可以完成的某些班次的最大数量(例如,通宵班次)
很高兴拥有,但不是必需的
如果您能想出一个算法来完成上述操作并包含任何/所有这些,我会留下深刻的印象和感激。即使是单独执行这些位的附加脚本也会很棒。
重叠的转变。例如,最好能够指定同时发生的“前台”班次和“后台”班次。这可以通过使用不同班次数据的程序的单独调用来完成,除了在给定时间段内安排人员进行多个班次的约束将被忽略。
可在每个工人(而不是全球)基础上指定工人的最短重新安排时间。例如,如果乔感到工作过度或正在处理个人问题,或者是初学者,我们可能希望比其他工人少安排他。
当没有可用的工人适合时,一些自动/随机/公平的选择员工以填补最少轮班人数的方式。
处理突然取消的某种方式,只是填补空白而不重新安排其他班次。
输出测试
可能,该算法应该生成尽可能多的匹配解决方案,其中每个解决方案如下所示:
鉴于上述数据,这是针对单个解决方案的测试功能。我认为这是对的,但我也希望能得到一些同行评议。
尝试
我已经尝试使用遗传算法来实现这一点,但似乎无法将其调整得非常正确,因此虽然基本原理似乎适用于单班,但它甚至无法解决几个班次和几个简单的情况工人。
我最近的尝试是生成所有可能的排列作为解决方案,然后减少不符合约束的排列。这似乎工作得更快,并且让我走得更远,但我正在使用 python 2.6 的 itertools.product() 来帮助生成排列,但我不能完全正确。如果有很多错误,我不会感到惊讶,因为老实说,这个问题不太适合我的头脑:)
目前我的代码在两个文件中:models.py 和 rota.py。models.py 看起来像:
和 rota.py 看起来像:
在结果之前截取调试输出,当前给出:
javascript - 你能推荐一个可选择的 Javascript 时间表小部件吗?
有谁知道js“时间表”小部件?
我需要以下内容:
- 列中的星期几和行中的小时数
- 1 小时时隙单元(或可定制)
- 能够在一周内使用鼠标突出显示/选择单元格多次选择。
- 选择一周中的几天时间(例如,用鼠标突出显示周一至周五下午 6 点的时间段)
- 在一天内选择多次(例如,用鼠标突出显示周一上午 10 点到下午 13 点)
- 每天选择多个时间范围(例如 0800 到 0100 和 1300 到 1700)
- 以编程方式设置页面加载时间(因此它们已经突出显示)
- 询问用户选择的时间的小部件
- 限制每天显示的小时数,例如只显示早上 6 点到晚上 11 点
- 可定制的 css / 外观和感觉
- 除了选择他们想要的时间之外,用户不需要做任何其他事情(所以这样的事情没有用)
- 免费使用
(我对它进行了搜索,但看不到任何完全符合我要求的东西)
php - 使用 PHP 创建时间表
我将使用 PHP 创建一个用作时间表的小应用程序。我打算从上午 9 点到下午 5 点,从周一到周五进行。
我仍在决定我希望时间表如何运行,但是有这个想法,用户将鼠标悬停在时间表的一部分上,当用户单击该点时,会打开一个新的事件预订窗口,并且用户选择事件类型和事件持续时间,然后保存。
现在,我将创建一个 1440 像素宽的表格,然后每小时有 180 像素,并且该小时的每一分钟占用 3 像素。您将如何实施这样的事情,我的意思是,您将如何制作应用程序以便它知道用户单击时间表的某个部分时的时间?
我不是要代码或类似的东西,我只是想知道更有经验的开发人员将如何创建这样一个时间表,因为我已经考虑过其他一些方法来解决这个问题,但听到其他人的想法总是很高兴关于他们将如何解决问题。
欢迎任何想法,谢谢。
sql - 我正在使用 SQL 设计巴士时刻表。每条巴士路线都有多个站点,我需要为每条路线使用不同的桌子吗?
我正在尝试尽可能地提出最有效的数据库。我的巴士路线都有大约 10 个站点。公共汽车从第一站开始,直到到达第 10 站,然后又回来。这个循环每天发生 3 次。
对于如何有效地生成公共汽车的时间以及应该将停靠点存储在哪里,我真的很困惑。如果我将所有站点都放在一个字段中,而将时间放在另一个字段中,那么数据库将不会非常动态。
如果我将所有停靠点一个接一个地存储在一个列中,然后将时间存储在另一列中,则会有很多重复发生,因为一个停靠点有多次。
也许我遗漏了一些东西,我才刚刚开始学习 SQL,这是我们已经设定的任务。
提前致谢。
mysql - 可以通过两个时间戳排序并显示同一行两次
我正在考虑创建一个时间表解决方案。我有一个看起来像的任务表
区域 1 item 1 startTime endTime
区域 1 item1 startTime endTime
我希望创建一个显示,在那里我可以查看接下来发生的事情,无论是 endTime 还是 startTime
IE
纽卡斯尔卷轴 16:45 18:45
纽卡斯尔卷轴2 17:45 19:45
会输出
纽卡斯尔 16:45
纽卡斯尔 17:45
纽卡斯尔 18:45
纽卡斯尔 19:45
更重要的是,我想检测时间是 startTime 还是 endTime 我必须为每个活动输入两行(时间、区域、项目、开始|结束)。我可以让界面创建两行。我只是想知道是否有更好的解决方案。
sql - 公交时刻表数据库设计
我正在尝试设计一个数据库来存储 300 条不同公交路线的时间表,每条路线在周一至周五、周六和周日都有不同的停靠点和不同的时间。我已经将每条路线的巴士出发时间表示如下,我不确定我是否应该在表中包含空值,这看起来可以吗?
sql - 员工的 SQL 时间表
我需要创建一个员工轮班数据库。所以到目前为止我有 3 个表,员工、员工班次和班次
我想计算一个员工在月底做了多少班次,我的问题是,因为一个月有 30 天,有些有 28 天和 31 天。
这意味着我需要在班次表中创建 31 个不同的变体?每个月的每一天一个?为了计算哪个员工工作得最多?
在我的业务关系中,它说员工每天有 1 或 2 个班次,因此我必须有 60 行不同的变化吗?我是对的,或者有没有简单的方法来解决它
sql - Little (Employee - Shift) SQL 数据库帮助
我正在创建一个包含员工、emp_shift、班次、表的小数据库,现在我假设能够在月底计算出哪个员工完成了最多的班次。
我已经创建了 SQL 创建、表的插入语句和一个小图表来解释我试图完成的事情,我是一个初学者,这是我过去 4 天一直在尝试做的作业。
图: http: //latinunit.net/emp_shift.jpg SQL: http: //latinunit.net/emp_shift.txt
请大家检查一下,截止日期是 2 天,这只是整个数据库的一部分