价格按日历计算

时间:2012-04-13 17:19:04

标签: php mysql sql

我们希望创建一个允许提供商根据时间指定不同价格的工作系统。因此,从晚上9点到5点在M-F,他们可能会收取10美元的特定工作,他们将在星期六 - 星期日晚上10点到9点收费。如何设计数据库以便跟踪不同时间指定的不同价格?我没有任何标准时间,但提供商可以随意选择他们想要的任何时间。

我在考虑以下结构:

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

因此,如果一个任务在M-F上,那么将为Mon,Tues,....列输入“1”,但是星期六,星期日将输入一个0。

1 个答案:

答案 0 :(得分:3)

我肯定会把它分成几个表。您可以在一个表中完成所有操作,但最终,您可以更灵活地使用更多表。

我建议采用以下结构:

ProviderTable

  • ID
  • 名称
  • 其他任何提供商特定的

TaskTable

  • ID
  • 名称
  • 任何其他任务特定的

时间表

  • ID
  • dayOfWeek enum
  • 开始时间
  • 结束时间

PriceTable - 将时间和任务结合在一起

  • ID
  • TIMEID
  • 的TaskID

工作表 - 将价格和提供者联合起来

  • ID
  • priceID
  • providerID
  • 任何其他特定工作

这可能看起来像很多前期工作,但后来,随着数据库的扩展,你会很高兴你做到了。