gpt4 book ai didi

mysql - 数据库结构 : Best Way To Set up Table for a Calendar Work Roster/Schedule (mySQL)?

转载 作者:行者123 更新时间:2023-11-29 02:31:54 25 4
gpt4 key购买 nike

我搜索后找不到这样的问题,所以我发帖。

  1. 为我的 10 位同事制定一个有趣的工作时间表

  2. 它是基于日历的(我们每周轮类 7 天,不同的类次有不同的职责 -(周一上午 8 点至下午 5 点任务 1,周一上午 8 点至下午 5 点任务 2,周六下午 5 点至早上 8 点(晚上)任务 2,等等)

  3. 使用 mySQL

我想不出设置 mySQL 表的最佳方法。任何人都有这方面的经验吗?

说下周一:

Monday days - Joe - Task 1
Monday days - Sally - task 2
Monday days - Mike - task 3
Monday nights - Bob - task 1,2,3
Tuesday days - Joe - Task 1
..etc..

显然这个表的设置是低效的:

id,  date, worker, shift, task

它效率低下,因为一年中的每一天“日期”字段中都会有大量条目...有没有更好的方法?

最佳答案

一个非常有趣的问题,也是一个众所周知的难题。阅读 Scott Rosenberg 的Dreaming in Code,了解与此问题和类似问题的一些斗争。

您有一个基本的设计选择。您可以枚举日期和类次,也可以使用类似通配符的方案来描述时间间隔。 (例如,“2013 年的所有工作日”或“2012 年 9 月的星期五和星期六”或您有什么。)

如您所见,枚举日期和类次会生成大量记录。但它很容易编程。而且,MySQL 可以轻松处理数万条记录。

另一方面,类似通配符的方案更为优雅。但它在语义上要复杂得多。 Unix/BSD/Linux crontab 系统 (http://crontab.org/) 包含一种简单但丑陋的方式来指定这类事情。

对于这类事情的精彩实现,请查看 Google 日历的重复约会功能集。

关于mysql - 数据库结构 : Best Way To Set up Table for a Calendar Work Roster/Schedule (mySQL)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11914906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com