2013-03-15 61 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 )