数据库中每周和时段内每天的商店价格

时间:2019-07-14 15:59:15

标签: mysql

我在设计数据库时遇到问题。我需要存储每天和时间不同的租赁服务价格,例如工作日的一个价格,周末和节假日的另一个价格,也就是周四的最低价格,例如早上或晚上的价格。例如:

monday 7:00-10:00 — $10
monday 10:00-18:00 — $9
same for tue, wed, fri
thursday 7:00-10:00 — $9
thursday 10:00-18:00 — $8
sunday 7:00-10:00 — $12
sunday 10:00-18:00 — $11
same for sat and holidays

一项服务的时间表与另一项服务的时间表有所不同,例如,帐篷租金仅需要工作日/周末的价格,而自行车租金也需要一定的时间,其他服务可能具有一项一般价格。还有更便宜的自行车或更昂贵的自行车。

我虽然有这样的桌子

CREATE TABLE `prices` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `service_id` int(11) DEFAULT NULL,
  `equipment_id` int(11) DEFAULT NULL,
  `price` int(11) DEFAULT NULL,
  `time_from` datetime DEFAULT NULL,
  `time_to` datetime DEFAULT NULL,
  `day` tinyint(2) DEFAULT NULL,
  PRIMARY KEY (`id`)
);

因此,如果服务仅需要一个一般价格,那么只有价格的一个记录,而其他列则为空。如果这是一整天的价格,但一周中的某一天有所不同,请在day列中从1到7填写(周末/节假日为0,时段为0)。 每个设备,也可能是设备组。

但是我认为要获得特定日期/时间段的价格会产生太多查询,例如

1)该设备的价格是否? 2)这段时间的价格? 3)如果是这一天的价格? 4)假期/周末的价格? 5)获得一般价格

或者我需要以相同的价格为每个可能的零件存储行。

有更好的解决方案吗?

0 个答案:

没有答案