Php 预订应用程序(如酒店)的数据库设计
我造了一个,但我确信它是错的 我有一个表来记录客户的详细信息,还有一个表记录了每个入住日期(即一周的假期有七条记录) 有更好的办法吗Php 预订应用程序(如酒店)的数据库设计,php,mysql,Php,Mysql,我造了一个,但我确信它是错的 我有一个表来记录客户的详细信息,还有一个表记录了每个入住日期(即一周的假期有七条记录) 有更好的办法吗 我用PHP和MySQL编写代码,这有什么不对?记录客户入住的每个日期,我认为这是相当标准的报告,比如能够显示任何一天预订的房间数量。 我在这页找到了它: 警告:目前(11月11日),谷歌报告该网站包含恶意软件:答案在很大程度上取决于你的要求。。。但我希望只需要存储一个记录,记录他们入住的开始和结束日期。如果您能进一步解释您的问题,我们可以为您提供更多详细信息。您
我用PHP和MySQL编写代码,这有什么不对?记录客户入住的每个日期,我认为这是相当标准的报告,比如能够显示任何一天预订的房间数量。 我在这页找到了它:
警告:目前(11月11日),谷歌报告该网站包含恶意软件:答案在很大程度上取决于你的要求。。。但我希望只需要存储一个记录,记录他们入住的开始和结束日期。如果您能进一步解释您的问题,我们可以为您提供更多详细信息。您需要问自己的一些问题:
- 您是否有理由需要记录每一天的入住情况
- 你能不能给我一张住宿的桌子,一个到达日期,几个晚上或者出发日期
- 是否有与一位客户的住宿相关的特定数据每天都不同
- 我认为每天一个元组有点过分了。“停留”表上的几列就足够了
stay.check_in_time_scheduled
stay.check_in_time_actual
stay.check_out_time_scheduled
stay.check_out_time_actual
是否有必要为一个人停留的每一天创建一个记录?只有在每天都很重要的情况下才有必要,否则就需要有一张包含客户详细信息的客户/客人表,一张包含客人预订的预订表。预订表包括房间、开始日期、结束日期、客人等
如果您需要记录其他事项,如付费活动或膳食,请根据需要将其添加到其他表格中。减少每次住宿的条目数的一种可能方法是,存储时间范围,例如开始日期和结束日期。我需要知道您针对数据运行的操作,以便提供更具体的建议 一般来说,如果需要检查给定日期有多少客户,可以使用存储过程进行检查 对于某些特定的操作,您的设计可能是好的。即使是这样,我仍然会保留一个“访问”表,将客户链接到一个独特的停留,以及一个“访问天数”表,在该表中,我会将每个客户的停留时间解析为其天数
尽快。您正在用查询的简单性(可能还有性能)来权衡数据库的大小 您当前的模型提供了简单的查询,因为它很容易查询客人数量、n晚X房间的空房等,但是数据库的大小将快速增加 移动到start/stop或start/num nights模型将使某些。。。有时有趣的查询:)
所以很多选择都和您的SQL技能水平有关:)有些事情可能会破坏您的模型。这些可能不是问题,但您应该与您的客户核实是否可能发生
- 少于一天的住宿(例如,在一些商务酒店,中午的短暂住宿很常见)
- 延迟退房/提前入住。如果你只是测量夜晚,而不是日期/时间,你可能会发现很难安排这些,或者看到潜在的冲突。我们的一位客户希望有四个小时的休息时间,不总是上午10点到下午2点
- ixVisit
- ixCusomer
- dt
- 鼻涕
- IX客户
- sFirstName
- sLastName
- 伊克斯塔伊
- 到达
- D离开
- 鼻涕
- 我不喜欢图表中的模式。很难看
模式摘要
表格:访问
访问表包含在酒店住宿的每晚一行
注:访问包含
对于一个忙碌的酒店经理来说,网站的工作效率与工作速度同样重要。我在旅游业工作,曾参与过许多不同的PM。我设计的最后一个方法是每晚按客人排队,这是我遇到的最好的方法。 在这个行业中,每晚入住都有一些特定的信息。例如,您需要知道预订时住宿每晚的费用。客人也可以在逗留期间搬家 就性能而言,在MySQL中执行equals查找比执行范围查找更快,因此startdate/enddate方法会更慢。要查找一系列日期,请执行“where date in(dates)” 我使用的模式大致如下:
Bookings (id, main-guest-id, arrivaltime, departime,...)
BookingGuests (id, guest-id)
BookingGuestNights (date, room, rate)
哇,谢谢你的回答 我花了很长时间仔细考虑了这个模式,在尝试了另一种方法并在转换为html时遇到困难之后,我选择了record=night方法 我使用CodeIgniter和内置的Calendar类来显示预订信息。通过这种方式(至少在尝试之后)检查是否有约会更容易,所以我选择了它。但我确信这不是最好的方法,这就是我为什么问这个问题的原因 也谢谢你的DB答案链接 最好的
梅虽然我最初的反应也是这是作业,但我觉得这有点不公平。这是一个关于特定类型数据的相当普遍的问题