0

この状況のベストプラクティスは何ですか?

私は予約システムを構築しており、ユーザーから情報を取得して保存するための最良の方法を探しています。各リソースは 1 日間利用でき、最大数まで任意の数のユーザーを受け入れることができます。たとえば、最大 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

したがって、日付ごとに 1 行です。

[START DATE]したがって、「を」に変換[END DATE]して、各日付の値を格納する必要があります。そのクライアント側をJavascriptで行うべきですか、それともレールのコントローラーで行うべきですか? ゲストのセット、つまり 1 ~ 3 人のゲストの料金が同じである場合、クエリを改善するためにそれを DB に保存する方法はありますか? または、明日ユーザーが2人のゲストの価格を変更したい場合、データベースが台無しになる可能性があるため、気にしないでください。

4

1 に答える 1

0

Start dateおよびEnd datevs. Each date- いくつかの条件:

  1. ユーザーが熱気球を 3 日間予約したい場合、それは毎日同じ熱気球ですか、それとも変更できますか? 異なる可能性がある場合は、resources.typeフィールドを複数の にマップしbooked_resources.idます。

  2. start個別のend日付を使用する場合は、リソース使用量の重複を確認する必要があります。繰り返しレコードを日付ごとに 1 つずつ保存するとbooked_resource.id、オーバーラップ チェックの必要がなくなります。関連する質問については、このスレッドを参照してください: MySQL でのカレンダー データの保存

  3. クライアント側の JS に毎日の日付の配列を送信することは、抽出するよりも簡単ですfor each day between start date and end date。現在のコードに最も適合するものを選択してください。いずれにせよ、SQL/日付チェックを変更して、利用できないことを特定する必要があることに注意してください。

  4. ユーザーがゲストの数を変更でき、それがコストに影響する場合、個々の日付を保存する方が、その種のデータベース更新(ホテルごとの項目別請求など) に便利です。そうしないと、ゲスト数が異なる日付のレコードを「分割」する必要があります。

于 2012-09-12T09:29:28.293 に答える