0

アドバイスや安心感がほしい…

ホテル分析に関する Web ベースのアプリケーション (ASP.NET) に取り組んでいます。このページには、前夜と過去の履歴について、特定のホテルの場所 (総売上高、客室売上高など) のさまざまなグラフを表示するさまざまなセクションがあります。

このデータは、最新のデータである必要がないため、夜間のジョブ (ストアド プロシージャ) で実行してテーブルにデータを入力できます。昨日のデータは、リアルタイムではなく必要なものです。ページ内の各分析セクションには、そのストアド プロシージャによって設定されたデータベース内の特定のテーブルからデータを取得する必要がありますか (ストアド プロシージャは、必要な複数のテーブルから最初に情報を取得します)。それとも、分離目的で各分析セクションに独自のテーブルを用意する方がよいでしょうか? たとえば、総売上高に関するすべてのデータを 1 つのテーブルに格納し、売上高情報を別のテーブルに格納する必要があります。

データが多少異なるため、それぞれが独自のテーブルを持つことについて議論し、進んでいます。すべてのデータが 1 つのテーブルにあるということは、NULL を持つセルが多数存在することを意味します。ただし、新しい分析要件が発生すると、テーブルを追加する必要があります。

何か案は?

4

2 に答える 2

0

これは、データ構造の正規化と呼ばれます。

すべてが含まれている1つの大きなテーブル(nullの束を含む)は必要ありません

主な論理概念ごとに1つのテーブルを作成し、さらにそれらを論理的にリンクするためにさらにいくつかのテーブルを作成する必要があります。

物事を分割する方法についてより具体的なアイデアが必要な場合は、保存したいと思ういくつかの列を使用して質問を編集します。

于 2012-06-27T21:43:09.387 に答える
0

分析をインターフェースから分離する必要があります。ここで重要なのは「エンティティ」です。同じエンティティのメジャーは、同じテーブルにある必要があります。したがって、ホテルの場所に関するすべての情報を同じテーブルに入れる必要があります。

互いに関連する列のセットが得られます。たとえば、ホテルの稼働率に関連するすべての列が 1 つのグループであり、別のグループが売上である場合があります。テーマを識別するために、これらの列にプレフィックスを付けることをお勧めします。占有率の「occ_」や売上高の「sales_」など。

これらを構造化して、各テーマが独自のストアド プロシージャに含まれるようにすることをお勧めします。可能であれば、well-name ビューを使用して、大きなテーブルに追加する情報を作成します。

地理など、他のレベルの情報がある場合もあります。この情報は別のテーブルにあります。

ドリルスルー機能が必要な場合、これはさらに複雑になる可能性があります。しかし、あなたはそれについて尋ねませんでした。

覚えておくべき重要なことが1つあります。アプリケーションの設計を開始すると、異なる列間に非常に明確な境界が設定される場合があります。ただし、ユーザーは線をぼかし、さまざまな要素をまとめ始めます。結局のところ、それが分析とデータの視覚化の力です。

于 2012-06-27T21:52:04.623 に答える