ある端末をレンタル提供できるシステムの構築でdb設計につまっています。
ユーザがある将来(おおよそが数日〜1週間後)の日程においてのレンタルを行いたい場合その日程が空いているかどうかを予約時に検証したいです。(ここの検証部分ができるだけ複雑になって重くなってしまわないための設計を考えています。)
また検証時には、空いているものが見つかり次第割り当てるという方式で構いません。(全てのデバイスの空き状況を検証し、最適なものを選ぶなどということはする必要がありません。)
またレンタルは、時間区切りでなく、日にち区切りで考えております。
(借りる期間はおおよそが1週間から半月くらいが目安で、1日から最大2年間レンタルが可能な仕様です。)
端末はDeviceと名付けたモデルで管理されており、100台程度の在庫があるという感じで、その100台それぞれについてレコードが存在します。またユーザはCustomerと名付けたモデルで管理されております。レンタルの予約のモデルはDeviceReservationなどという名前で考えています。
Dayモデルのレコードを日にちごとに作り、紐づけるという形で思いついたのですが、それはアンチパターンだとどこかで見ました。
考え方の例としては、デバイスをホテルの部屋と捉え、そのホテルの部屋の予約システムを作る、というような感じで考えれば良いのではと思います。
モデルのアソシエーションとテーブルのカラムを前提に、空き状況確認のロジックのアイデアをお聞きしたいです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー