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」が入力されますが、Saturday、Sunday の列には 0 が入力されます。

4

1 に答える 1

3

I would definitely separate this into several tables. You can do it all in one table, but ultimately, you will have more flexibility with more tables.

I would suggest the following structure:

ProviderTable

  • id
  • name
  • anything else provider specific

TaskTable

  • id
  • name
  • anything else task specific

TimeTable

  • id
  • dayOfWeek enum
  • startTime
  • endTime

PriceTable - to join together times and tasks

  • id
  • timeID
  • taskID
  • price

Job Table - to join together prices and providers

  • id
  • priceID
  • providerID
  • anything else job specific

This may seem like a lot of up front work, but later, as your database expands, you will be glad you did it.

于 2012-04-13T17:52:27.940 に答える