- ベストアンサー
チケット販売等の日付を持つテーブル設計について
- チケット販売サイトの日付管理に関する設計方法を教えてください。
- 同一イベントの異なる日付の表示方法について教えてください。
- 日付とイベントの関係を効果的に管理する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
データベースソフトを使用するときには、「同じデータを重複して保存しない」のが普通です、 ご質問の場合ですと、クエリを作って、それを表示用とします。私がNo1で例示したテーブル構造の場合、クエリのフィールドは次のようになります。 公演番号(グループ化) ライブ番号(グループ化) 会場番号(グループ化) 日付の最小値 日付の最大値 ※クエリの作り方はソフトによって違います。
その他の回答 (1)
- yeslets
- ベストアンサー率31% (47/151)
これだけの情報では、全体が見えてきませんが、販売のサイトということで、一応 ライブ名、アーティスト、単価、数量 会場、会場の定員、日付 という項目を考えました。 私が考えたテーブル構造は ライブテーブル ライブ番号(キー)、ライブ名、アーティスト 会場テーブル 会場番号、会場名、定員 公演テーブル 公演番号(キー)、ライブ番号、日付、会場番号 座席単価 公演番号(キー)、座席ランク(キー)、単価 申込テーブル 申込番号(キー)、公演番号、座席ランク、数量 です。 もっとも、たとえば「○○全国ツアー」を一つのライブ番号にするか、会場ごとに違う番号にするかで、テーブル構造は違ってきますし、「○○全国ツアー」で一つの番号にするにしても、すべての会場で単価が同じであるか、会場ごとに単価が違うのかでもテーブル構造は違ってきます。上に挙げた例は (1) 全国ツアーを一つのライブ番号とする (2) 座席にランクがある (3) 会場ごとに単価が違う (4) 同じ会場で複数の日程がある (5) 同じアーティストで同日の公演は一つ (6) ライブに出演するアーティストは一組(一人) という条件で設定しています。 ノウハウに関しては「データベースの基礎」みたいな書籍を参考にしてください。
補足
回答有難うございます。 テーブル構造参考になりました。 今回は音楽ライブに限らず、スポーツや演劇などのイベント全般を扱います。 説明不足ですいません。 特にお聞きしたいことは以下の通りです。 例えば、データベース上は、05/25と05/26は別々のレコードとして存在するが、表示する際は、「5/25(月)~26(火)」「5/25(金)18:30、7(土)18:00 」のような文字列で表示したい場合に、この文字列を保存する為のフィールドを作って05/25と05/26のレコードにそれぞれ同じものを保存する方法がスマートな方法なのかどうかということです。保存しない場合は、プログラム上でやるしかないのでしょうか? 一般的にどのよな手法が使われているのでしょうか?
お礼
有難う御座います。 納得しました