2012-04-13 540 views
1

我們希望創建一個工作系統,允許供應商根據時間指定不同的價格。因此,在9點至5點的M-F上,他們可能會收取10美元的特定工作,他們將在星期六至星期日從下午10點到9點收取費用。我如何設計數據庫,以便跟蹤不同時間指定的不同價格?我沒有任何標準時間,但提供商可以隨意選擇他們想要的時間。日曆價格

我想下面的藥結構的:

價格

provider_id 
task_id 
price 
Mon 
Tues 
Wed 
Thurs 
Friday 
Saturday 
Sunday 
time_start 
time_end 

所以,如果一個任務是在MF,然後是「1」將是列進入星期一,星期二,... 。,但星期六,星期日將輸入0。

+0

我的第一個想法是恐怖的,你有七個單獨的列,並說一個整數位掩碼的日子,但我想只要這些是位列,而不是32/64位整數可能不會太糟糕。我也可能將時間數據分成不同的表格和參考文件,而不是將其包含在每個記錄中,但我懷疑這會使這種差異變得非常大。這是人們爲了在日曆程序中實施週期性事件必須解決的問題的一部分,因此您可能會發現尋找其中一些事物的靈感。 – Rup 2012-04-13 17:22:59

回答

3

我肯定會把它分成幾個表格。你可以在一個表格中完成所有工作,但最終你可以通過更多的表格獲得更大的靈活性。

我建議以下結構:

ProviderTable

  • ID
  • 具體名稱
  • 別的供應商

TaskTable

  • ID
  • 具體名稱
  • 別的任務

時間表

  • ID
  • 一週中的某天枚舉
  • 開始時間
  • 結束時間

PriceTable - 聯合起來時間和任務

  • ID
  • TIMEID
  • 任務id
  • 價格

工作表 - 聯合起來的價格和供應商

  • ID
  • priceID具體

  • providerID
  • 別的工作這可能看起來像很多前面的工作,但後來,隨着數據庫的擴展,你會很高興你做到了。