一部の部屋の可用性/占有率を管理するためにRails3アプリケーション(RDMSとしてMySQLを使用)を開発しています(ホテルのようなアプリです)私の場合、問題はシステム2の異なる要件に対応しなければならないことです。 1つの部屋を借りることができます:
- 数ヶ月(例えば6モン)
- いくつかの日/週/週末
明らかに、アプリは、特定の日付の各部屋について、それが利用可能かどうか、およびどのユーザーがレンタルしているかを表示する必要があります。反対側では、1人のユーザーが1つの部屋で特定の日付範囲を検索できます。日付範囲は、固定の日付または月の範囲(たとえば、9月から3月)にすることができます。これはデータベースの設計とは関係ありませんが、覚えておく必要があります。
このシステムを効率的に機能させるために、部屋への参照と、各要素が0または1の場合、0が使用可能で1の場合、365要素の配列(1年を表す)を使用して、テーブルYEARコンポジットを作成することを考えました。賃貸を意味します。
このソリューションを採用すると、いくつかの問題に直面する必要があります。
- ユーザーが数か月の間に部屋を検索しているときに、非常に迅速な結果を返します。
- 「クロスイヤー」範囲の管理(たとえば、2012年12月20日から2013年1月13日まで)
- うるう年
そして最後に、SQLプロシージャや深夜のプロセスを避けたいと思っています(可能な場合)
SQLでこの問題を設計するためのより良い方法があると確信しています...あなたの何人かは私を助けてくれますか?または私にいくつかのヒントを与えますか?