2012-02-28 65 views
0

我正在开发一个度假屋租赁网站,我希望能够帮助您设计对象模型。设计出租屋预订系统

我有房屋模型,用户模型,现在我要设计和构建预留模型,它将具有开始和结束日期字段,用户字段和房屋字段。

预订过程涉及多个操作,选择房子,选择日期,最后付款。我将如何制定预订流程,以便在所有这些操作完成之前不保存预订?创建一个不同的模型(例如ReservationRequest)来处理预订的两个状态是否是一个想法?否则,我如何处理预订的两个状态?

对不起,如果这是一个模糊的问题,但这种过程的任何指导将对我非常有用。

+1

我会质疑您的想法的前提,即您在预订完成之前不保存预订。只要您完成与预订相关的所有操作,您就可以拥有与预订关联的状态,该状态将设置为“完成”。然后,您可以在模型中创建命名范围,以获取“完整”保留。在数据库中存储未完成的预订没有任何问题 - 如果需要,您可以定期清除它们,实际上,您可以从未完成预订的状态中获得一些有用的分析。 – 2012-02-28 14:01:29

+0

这真是个好主意,我之前没有考虑过。谢谢! – 2012-02-28 14:16:35

+0

您是否考虑过在该日期范围内检查可用性的问题?如果你只是收到预订请求,这不是一个问题,但如果你让用户支付它可能是一个问题 – 2012-02-28 14:33:56

回答

1

这取决于您的政策。在启动有效付款之前,我不会存储任何服务器端的内容。这样用户不能阻止房屋,然后改变他们的想法。我会在向导的不同页面之间来回传递对象(房屋和日期)。当开始付款时,我会将预订存储在数据库中 - 因此假定乐观的观点 - 这将锁定房屋。如果付款失败,请销毁预订并发送适当的消息(电子邮件)。这样每个人都可以重新启动整个过程。但这真的取决于会有多少用户以及环境如何并发

+0

许多用户仍然使用_bank tranfer_作为付款方式。通过银行转账,您需要几天的时间才能拿到钱,我认为这不是一件好事如果一个房子在货币到达时被锁定几天,就会出现问题。 如果这是一个问题,可能你可以使用这种方法,但考虑“老方法”的用户被排除在外。 – 2012-02-28 19:25:39

+0

对不起,最后一句话应该是“如果它不是问题,你可以使用这种方法[...]” – 2012-02-28 19:51:35