0

stackoverflow メンバーの皆様

チケット販売価格のアクセスデータベースを作成しています。チケットの価格は毎年変わるため、月単位でチケットの価格にアクセスするためのデータベースを作成したいと考えています。

しかし問題は、特定の月に基づいてチケットの価格を取得するためにデータベースにクエリを実行するにはどうすればよいかということです。サンプルデータベースの画像も添付しました。 データベース データベースもテキスト形式でアップロードしました。

会社:

  -------------------------------------------
    |     CompanyID      |    CompanyName     |
    -------------------------------------------
    | A                  | AAA                |
    -------------------------------------------
    | B                  | BBB                |
    -------------------------------------------
    | C                  | CCC                |
    -------------------------------------------
    | D                  | DDD                |
    -------------------------------------------
    | .                  | ..                 |
    -------------------------------------------
    | .                  | ..                 |
    -------------------------------------------
    | .                  | ..                 |
    -------------------------------------------
    | Z                  | ZZZ                |
    -------------------------------------------

チケット:

    ----------------------------------------------------------------------------------------------------------
|         ID         |     TicketType     |        2010        |        2011        |        2012        |
----------------------------------------------------------------------------------------------------------
| 001                | 3 months           |             $50.00 |             $55.00 |             $68.00 |
----------------------------------------------------------------------------------------------------------
| 002                | 2 Weeks            |             $10.00 |             $11.50 |             $13.10 |
----------------------------------------------------------------------------------------------------------
| 003                | Group ticket       |             $30.00 |             $32.00 |             $35.00 |
----------------------------------------------------------------------------------------------------------
| 004                | Night ticket       |              $7.00 |              $9.00 |             $11.00 |
----------------------------------------------------------------------------------------------------------
| 005                | 1 Day              |              $3.00 |              $5.00 |              $8.00 |
----------------------------------------------------------------------------------------------------------
| 006                | 1 Week             |              $8.00 |             $15.00 |             $12.00 |
----------------------------------------------------------------------------------------------------------
| 007                | 1 month            |             $19.00 |             $22.00 |             $25.00 |
----------------------------------------------------------------------------------------------------------
| 200                | Fun ticket         |             $11.00 |             $12.00 |             $14.00 |
----------------------------------------------------------------------------------------------------------
| AAA                | 001                |                    |            $100.00 |          $5,500.00 |
----------------------------------------------------------------------------------------------------------

問題は、月に基づいてチケット価格にアクセスしたいということです。たとえば、「2011 年 3 月」のチケット ID:「001」の価格。これにより、特定の月に販売されたチケットに基づく月次アカウントが計上されます。

フィールドは年単位でリストされており、月単位で作成すると、大量のデータの冗長性が発生したり、将来の更新が面倒になったりします。

どんな助けでも大歓迎です。事前にどうもありがとうございました。

乾杯!

4

1 に答える 1

2

データベースの構造がそうするのを妨げています。ticket テーブルはFirst Normal Formでさえありません。現在、毎年新しい列を追加して、更新された価格を表示する必要があります。これは、列ではなく行を追加することで、はるかに簡単に実現できます。

ID と TicketType を持つ TicketID という別のテーブルを作成する必要があります。Ticket テーブルを次のように変更します: ID、price、date_effective。これにより、このように価格の変化を記録できます

    1,50,1/1/2010
    1,51,2/1/2010
    1,52,8/15/2010
    1,55,1/1/2011

これにより、列を追加しなくても、必要なときにいつでも価格を変更できます。最後の列に日付を格納しているため、Access に組み込まれている Date 関数を使用してクエリを作成できます。

于 2012-06-15T01:55:51.367 に答える