0

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

我正在构建一个预订系统,并且正在寻找从用户那里获取和存储信息的最佳方式。每个资源在一天内可用,并且最多可以占用任意数量的用户。例如,假设这是一个最多可容纳 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 位客人的价格,它可能会搞砸我的数据库。

4

1 回答 1

0

Start dateEnd datevs. Each date- 几个条件:

  1. 如果用户要预订3天的热气球,是每天同一个热气球还是可以换?如果可以不同,请将一个resources.type字段映射到多个booked_resources.id.

  2. 如果您使用单独的startend日期,则需要检查资源使用的重叠。使用 存储重复记录一个日期booked_resource.id将消除重叠检查的需要。有关相关问题,请参阅此线程:在 MySQL 中存储日历数据

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

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

于 2012-09-12T09:29:28.293 回答