1

利用可能なホテルの部屋とその料金を一覧表示する Web サイトがあるとします。ホテルのオーナーは、各部屋の 1 日あたりの料金を設定します。「1999 年 1 月 1 日は 50 ドル、2000 年 1 月 1 日は 100 ドル」ではなく、「1 月 1 日は 100 ドル」のように複雑にする必要があります。粒度は日割りに限定されます。

これをデータベースで表現する最も効率的な方法は何ですか? 部屋ごとに、日付フィールドと価格フィールドを保持する個別のテーブルがありますか? つまり、部屋ごとに 365 エントリ。

これを解決する方法はわかりますが、たとえば、ユーザーが「8 月の 7 日間、予算 500 ドル」などのクエリを実行したい場合、問題は少し複雑になります。ぜひとも実装して欲しい機能です。

UI により、所有者は部屋の料金を個々の日料金ではなく時間単位で設定できるようになります。たとえば、部屋の料金が 1 月~6 月で 50 ドル、7 月~12 月で 100 ドルの場合、2 つの料金ブロックになります。必要に応じて 365 の日付型フィールドに変換できることは明らかですが、代わりに 2 つの日付範囲型フィールドを使用するソリューションが望ましいでしょう。

このためのテクニックをどこで学べるかについての指針は大歓迎です。Google で検索して Calendar Tables に関する情報を見つけましたが、追加のヒントや情報をいただければ幸いです。

歴史的に私は MySQL を使用してきましたが、何でも考慮されます。

4

1 に答える 1

1

ラルフキンボールの用語では、これはゆっくりと変化する次元と呼ばれます。

この本の1つをご覧になることをお勧めします。「データウェアハウスツールキット」の最新版では、このトピックを十分にカバーしているはずです。

于 2012-04-30T18:07:16.713 に答える