dポイントプレゼントキャンペーン実施中!

このたび、あるチケット販売的なサイトを製作することになりました。
特定日時におけるあるイベントを1レコードとして設計を考えています。
このとき、同じイベントでも、日付が違う場合は、内部管理として、
1 2003-05-25 ○○ライブ
2 2003-05-26 ○○ライブ
二つに分けようと思っています。
ただ、表示は
5/25(月)~26(火) ○○イベントのように一行としたいと思っております。
この場合、表示用の文字列を別にフィールドとして追加したほうがよろしいのでしょうか?
1 2003-05-25 5/25(月)~26(火) ○○ライブ
2 2003-05-26 5/25(月)~26(火) ○○ライブ

それともフロントのプログラムのほうで無理やり表示用に変換したほうがいいのでしょうか?
スマートにできるノウハウご存知でしたら教えてください。
PS/このようなケースの場合、キーは連番または、日付どちらが都合がよいのですか?

A 回答 (2件)

 データベースソフトを使用するときには、「同じデータを重複して保存しない」のが普通です、


 ご質問の場合ですと、クエリを作って、それを表示用とします。私がNo1で例示したテーブル構造の場合、クエリのフィールドは次のようになります。
 公演番号(グループ化)
 ライブ番号(グループ化)
 会場番号(グループ化)
 日付の最小値
 日付の最大値

※クエリの作り方はソフトによって違います。
    • good
    • 0
この回答へのお礼

有難う御座います。
納得しました

お礼日時:2003/04/24 13:09

これだけの情報では、全体が見えてきませんが、販売のサイトということで、一応


  ライブ名、アーティスト、単価、数量
  会場、会場の定員、日付
という項目を考えました。
私が考えたテーブル構造は
 ライブテーブル
  ライブ番号(キー)、ライブ名、アーティスト
 会場テーブル
  会場番号、会場名、定員
 公演テーブル
  公演番号(キー)、ライブ番号、日付、会場番号
 座席単価
  公演番号(キー)、座席ランク(キー)、単価
 申込テーブル
  申込番号(キー)、公演番号、座席ランク、数量
です。
 もっとも、たとえば「○○全国ツアー」を一つのライブ番号にするか、会場ごとに違う番号にするかで、テーブル構造は違ってきますし、「○○全国ツアー」で一つの番号にするにしても、すべての会場で単価が同じであるか、会場ごとに単価が違うのかでもテーブル構造は違ってきます。上に挙げた例は
 (1) 全国ツアーを一つのライブ番号とする
 (2) 座席にランクがある
 (3) 会場ごとに単価が違う
 (4) 同じ会場で複数の日程がある
 (5) 同じアーティストで同日の公演は一つ
 (6) ライブに出演するアーティストは一組(一人)
という条件で設定しています。
 ノウハウに関しては「データベースの基礎」みたいな書籍を参考にしてください。

この回答への補足

回答有難うございます。
テーブル構造参考になりました。
今回は音楽ライブに限らず、スポーツや演劇などのイベント全般を扱います。

説明不足ですいません。
特にお聞きしたいことは以下の通りです。
例えば、データベース上は、05/25と05/26は別々のレコードとして存在するが、表示する際は、「5/25(月)~26(火)」「5/25(金)18:30、7(土)18:00 」のような文字列で表示したい場合に、この文字列を保存する為のフィールドを作って05/25と05/26のレコードにそれぞれ同じものを保存する方法がスマートな方法なのかどうかということです。保存しない場合は、プログラム上でやるしかないのでしょうか?
一般的にどのよな手法が使われているのでしょうか?

補足日時:2003/04/24 11:55
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す