1

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

我正在考虑以下结构:

价格

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

因此,如果任务在 MF 上,则将为 Mon、Tues 等列输入“1”,但为周六、周日列输入 0。

4

1 回答 1

3

我肯定会把它分成几个表。您可以在一张桌子上完成所有操作,但最终,您将拥有更多桌子的更多灵活性。

我建议采用以下结构:

提供者表

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

任务表

  • ID
  • 姓名
  • 任何其他特定任务

时间表

  • ID
  • dayOfWeek 枚举
  • 开始时间
  • 时间结束

PriceTable - 将时间和任务连接​​在一起

  • ID
  • 时间ID
  • 任务ID
  • 价格

工作表 - 将价格和供应商连接在一起

  • ID
  • 价格ID
  • 提供者 ID
  • 任何其他特定工作

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

于 2012-04-13T17:52:27.940 回答