2012-02-28 16 views
0

私はバケーションホームレンタル用のウェブサイトを開発しています。私はオブジェクトモデルの設計を手助けしたいと思います。賃貸住宅予約システムの設計

私は住宅モデル、ユーザーモデルを持っていますが、ここでは、開始日と終了日のフィールド、ユーザーフィールド、ハウスフィールドを持つ予約モデルを設計して作成します。

予約プロセスには、家を選択し、日付を選択し、最終的に支払いを行ういくつかのアクションが含まれています。これらのすべてのアクションが完了するまで予約が保存されないように、予約プロセスをどのように開発しますか?予約の2つの状態を処理するために、異なるモデル(たとえばReservationRequest)を作成するのがいいですか?それ以外の場合は、予約の2つの状態をどのように処理できますか?

申し訳ありませんが、これはあいまいな質問ですが、この種のプロセスに関するガイダンスは非常に役に立ちます。

+1

私はあなたが予約が完了するまで予約を保存しないという考えの前提に疑問に思うだろう。予約に関連するすべてのアクションを完了したら、「完了」に設定される予約に関連付けられた状態を単純に作成することができます。モデル内に名前付きスコープを作成して、「完全な」予約を取得することができます。不完全な予約をデータベースに保存することには何も問題はありません。必要に応じて定期的に削除することができます。また、不完全な予約状態から有用な分析を得ることもできます。 –

+0

それは本当に良いアイデアだ、私はそれを前に考えなかった。ありがとう! –

+0

あなたは、その日の範囲内のチェックの可用性の問題を考えましたか?予約リクエストを受け取ったばかりの場合は問題ありませんが、ユーザーに支払うと問題が発生する可能性があります –

答えて

1

お客様のポリシーによって異なります。私は有効な支払いが開始されるまで、サーバー側には何も保管しません。この方法では、ユーザーは住宅をブロックしてから心を変えることはできません。ウィザードの別のページ間でオブジェクト(家や日付)を前後に渡します。支払いが開始されると、私は予約をデータベースに保存します。そうすれば、楽観的な見地を前提にして、これはハウスをロックします。支払いが失敗した場合は、予約を破棄し、適切なメッセージ(電子メール)を送信してください。このようにして、誰もがプロセス全体を再開できます。しかし、これは実際にそこにいるユーザーの数と並行してどのように環境に依存する

+0

多くのユーザーがまだ支払い方法として_bank tranfer_を使用しています。銀行送金でお金を得るのに数日が必要です。お金が到着している間家が数日間ロックされていれば問題です。 おそらく、この方法を使用することはできますが、ユーザーが放置されている「古い方法」を検討するのが問題です。 –

+0

申し訳ありませんが、最後の文は "これが問題ではない場合、この方法を使用することができます[...]" –

関連する問題