【问题标题】:Designing a Work Scheduling Database with Multiple Variables? [closed]设计具有多个变量的工作调度数据库? [关闭]
【发布时间】:2013-03-15 13:35:07
【问题描述】:

我正在尝试为我正在处理的日程安排应用程序设计数据库架构。我有办法做到这一点,但它似乎有点笨拙。由于涉及的变量,我很好奇这是否是野兽的本性。

该应用程序类似于工作板,但具有调度组件。您可以创建一个工作(或“项目”),然后设置工作日期,并说明该工作有哪些职位空缺。其他人可以报名参加这项工作,要么被雇用,要么被拒绝。

问题:

-该作业不会同时运行日期,因此可能有 10 个工作日分布在两个月内。

-职位因工作而异。他们是从一个列表中挑选出来的,但一个职位可能有 10 个独特的空缺职位,而另一个职位可能有 5 个。

我的想法,肯定感觉笨拙的是,将“openPositions”作为一个带有 [jobId, positionName, date] 的表和另一个带有“jobApply”的表和 [jobId, positionName, date, acceptFlag]。所以每个日期对每个职位都有一个条目。显然,这会成倍增长(openPositions 将有 [#days * #positions] 行)。我可以通过强迫每天都有空缺职位的人来减少这种情况,但我想在日程安排上提供灵活性。

这个项目作为一个整体比我一直在做的事情要大,但我很高兴能够解决它。我很想听听任何想法,如果需要澄清,请告诉我。

编辑:快速的非抽象示例:

项目 1

项目日期: 3/1、3/5、3/6、3/9、4/2、4/5、4/8

所需职位:项目主管、程序员 1、程序员 2、建模师、关卡设计师、实习生

所以我的(笨重的)版本将在 openPositions 中包含以下条目:

(3/1,项目负责人),(3/5,项目负责人),(3/6,项目负责人),(3/1,程序员1)等等。

同样,显然这有很多条目,这是我所关心的(在本例中是 7 个日期 x 6 个位置,因此数据库中有 42 行)。希望这会有所帮助。

【问题讨论】:

  • 你能不能让这个场景不那么抽象——有时我发现这有助于解决问题。
  • 添加了一些说明。

标签: php mysql database-schema


【解决方案1】:

我不是很清楚,但是您是否知道您开始工作时所需的职位列表,并且每个工作日的职位都相同?

如果是这样,请创建一个包含两列(jobID、位置)的表“positions_required”,并在其中输入job_id 和所需职位。

这样您就可以将每个项目的工作日期输入到另一个表格中。

您将有 3 个表,但只有 1 + m + n 条记录(关系 1:m (jobs:positions) 和 1:n (jobs:dates) ))而不是 1+m*n (如您的场景)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 2011-05-03
    • 2010-12-18
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多