按日历显示的价格


prices by calendar

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

我在想以下结构:

价格

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

因此,如果任务在 M-F 上,则将为"星期一"、"星期二"、"..."列输入"1",但为"星期六、星期日"列输入 0。

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

我建议采用以下结构:

提供者表

  • 编号
  • 名字
  • 特定于其他任何提供程序的内容

任务表

  • 编号
  • 名字
  • 任何其他特定于任务的内容

时间表

  • 编号
  • 星期枚举
  • 开始时间
  • 结束时间

价格表 - 将时间和任务连接在一起

  • 编号
  • 时间标识
  • 任务标识
  • 价格

作业表 - 将价格和供应商结合在一起

  • 编号
  • 价格编号
  • 提供程序标识
  • 任何其他特定于工作的内容

这似乎需要很多前期工作,但后来,随着数据库的扩展,您会很高兴自己做到了。