2013-03-15 78 views
2

我想为我正在处理的计划应用程序设计一个数据库模式。我有办法做到这一点,但似乎有点笨拙。我很好奇,如果这涉及到变量,这是兽的本质。设计具有多个变量的工作计划数据库?

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

的问题:

-The作业没有运行并发日期,所以有可能会蔓延过了两个月10个工作日内。

- 职位因工作而不同。他们从列表中挑选出来,但有一份工作可能有10个独特的开放职位,而另一个可能有5个职位,而另一个职位可能有5个。

我的想法确实感觉笨拙,就是将“openPositions”与[jobId,positionName,日期]和第二个表,带有[jobId,positionName,date,acceptFlag]的“jobApply”。所以每个日期都有每个职位的条目。很明显,这会成倍地增加(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个日期×6个位置,因此在数据库中有42行)。希望这个对你有帮助。

+1

你可以让这个场景稍微抽象一点 - 有时候我发现这有助于构建问题。 – Strawberry 2013-03-15 13:54:11

+0

增加了一些说明。 – ballofpopculture 2013-03-15 14:40:12

回答

0

这对我来说并不是很清楚,但是当你开始工作时,你是否知道工作所需的职位列表,并且在每个单一的工作日内职位都是相同的?

如果是这样,请在表格“positions_required”中添加两列(jobID,position)并输入job_id和所需的位置。

这样你就可以将每个项目的工作日期输入到其他表格中。

您将拥有3个表格,但只有1 + m + n个记录(关系1:m(工作:职位)和1:n(工作:日期))),而不是1 + m * n )