重叠规则(例如价格变化)的推荐数据库模式是什么?

时间:2014-08-03 23:16:03

标签: sql database database-design

设想管理酒店房间价格的规则。

  
      
  1. 一般来说,每晚100美元
  2.   
  3. 周五或周六,120美元
  4.   
  5. 在夏季,150美元
  6.   
  7. 下周特价,80美元
  8.   
  9. 等。
  10.   

鉴于酒店房间的数据库具有不同的规则,您将如何在数据库中对此进行建模,以便您可以在给定时间快速轻松地修改和查询价格?

2 个答案:

答案 0 :(得分:1)

我想有多种方法可以做到这一点,但我最熟悉的方法是在表格中存储属性'date-from'和'date-to'以及该持续时间的相应价格。然后,在查询时,您可以在where子句中指定sysdate(或任何其他所需日期)以检索正确的价格。

或者,如果您对酒店中的所有房间都有相同的规则,您可以创建一个包含规则的单独表格(日期,日期,价格(或价格变化百分比))。这将是一种更为标准化的方式,但这意味着您对所有房间都有相同的规则。

这完全取决于业务规则是什么。

答案 1 :(得分:1)

您需要定义优先顺序。然后,您存储每个规则及其优先级和条件(例如从 - 到+工作日位图),并找到具有最高优先级的匹配规则。