在数据库中存储日期和费率
这种情况的最佳做法是什么?
我正在建立一个预订系统,我正在寻找捕获和存储用户信息的最佳方法。 每个资源都可以使用一天,最多可以占用任意数量的用户。 例如,假设这是一个最多可容纳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 date
和End date
与Each date
– 几个条件:
-
如果用户想要预订3天的热气球,那么它是每天都是相同的热气球还是可以改变? 如果它可以不同,
booked_resources.id
resources.type
字段映射到几个booked_resources.id
。 -
如果使用单独的
start
日期和end
日期,则需要检查资源使用的重叠。 使用booked_resource.id
存储每日一次的重复记录将消除重叠检查的需要。 请参阅此主题以获取相关问题: 在MySQL中存储日历数据 -
向客户端JS发送每天的日期数组可能比
for each day between start date and end date
提取更容易。 选择符合当前代码的最佳选择。 请记住,无论哪种方式,都必须修改SQL /日期检查以发现不可用。 -
如果用户可以更改访客数量并影响成本,则存储每个单独的日期对于此类数据库更新更为方便 (如酒店的逐项列出的条款)。 否则,您需要为具有不同客人数的日期“拆分”记录。