在数据库中存储日期和费率

这种情况的最佳做法是什么?

我正在建立一个预订系统,我正在寻找捕获和存储用户信息的最佳方法。 每个资源都可以使用一天,最多可以占用任意数量的用户。 例如,假设这是一个最多可容纳5人的热气球。 我希望我的表单看起来像这样:

[Buttons to select # of guests] // So if a user wants the same price for 1-3 people he only has to enter it once. From [START DATE] to [END DATE]: [RATE] // Where the []'s are input fields for the user 

我计划将每个价格存储在数据库中:

 Date, # of guests, rate 

每个日期都有一行。

所以我需要将“ [START DATE] ”转换为[END DATE] “以存储每个日期的值。 我应该在Javascript中使用客户端,还是在rails中使用我的控制器? 如果一组客人的费率相同,即1-3位客人,有没有办法将其存储在数据库中以便更好地查询? 或者我不应该打扰,因为如果明天用户想要更改2位客人的价格,可能会搞砸我的数据库。

Start dateEnd dateEach date – 几个条件:

  1. 如果用户想要预订3天的热气球,那么它是每天都是相同的热气球还是可以改变? 如果它可以不同, booked_resources.id resources.type字段映射到几个booked_resources.id

  2. 如果使用单独的start日期和end日期,则需要检查资源使用的重叠。 使用booked_resource.id存储每日一次的重复记录将消除重叠检查的需要。 请参阅此主题以获取相关问题: 在MySQL中存储日历数据

  3. 向客户端JS发送每天的日期数组可能比for each day between start date and end date提取更容易。 选择符合当前代码的最佳选择。 请记住,无论哪种方式,都必须修改SQL /日期检查以发现不可用。

  4. 如果用户可以更改访客数量并影响成本,则存储每个单独的日期对于此类数据库更新更为方便 (如酒店的逐项列出的条款)。 否则,您需要为具有不同客人数的日期“拆分”记录。