このたび、あるチケット販売的なサイトを製作することになりました。
特定日時におけるあるイベントを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/このようなケースの場合、キーは連番または、日付どちらが都合がよいのですか?
No.2ベストアンサー
- 回答日時:
データベースソフトを使用するときには、「同じデータを重複して保存しない」のが普通です、
ご質問の場合ですと、クエリを作って、それを表示用とします。私がNo1で例示したテーブル構造の場合、クエリのフィールドは次のようになります。
公演番号(グループ化)
ライブ番号(グループ化)
会場番号(グループ化)
日付の最小値
日付の最大値
※クエリの作り方はソフトによって違います。
No.1
- 回答日時:
これだけの情報では、全体が見えてきませんが、販売のサイトということで、一応
ライブ名、アーティスト、単価、数量
会場、会場の定員、日付
という項目を考えました。
私が考えたテーブル構造は
ライブテーブル
ライブ番号(キー)、ライブ名、アーティスト
会場テーブル
会場番号、会場名、定員
公演テーブル
公演番号(キー)、ライブ番号、日付、会場番号
座席単価
公演番号(キー)、座席ランク(キー)、単価
申込テーブル
申込番号(キー)、公演番号、座席ランク、数量
です。
もっとも、たとえば「○○全国ツアー」を一つのライブ番号にするか、会場ごとに違う番号にするかで、テーブル構造は違ってきますし、「○○全国ツアー」で一つの番号にするにしても、すべての会場で単価が同じであるか、会場ごとに単価が違うのかでもテーブル構造は違ってきます。上に挙げた例は
(1) 全国ツアーを一つのライブ番号とする
(2) 座席にランクがある
(3) 会場ごとに単価が違う
(4) 同じ会場で複数の日程がある
(5) 同じアーティストで同日の公演は一つ
(6) ライブに出演するアーティストは一組(一人)
という条件で設定しています。
ノウハウに関しては「データベースの基礎」みたいな書籍を参考にしてください。
この回答への補足
回答有難うございます。
テーブル構造参考になりました。
今回は音楽ライブに限らず、スポーツや演劇などのイベント全般を扱います。
説明不足ですいません。
特にお聞きしたいことは以下の通りです。
例えば、データベース上は、05/25と05/26は別々のレコードとして存在するが、表示する際は、「5/25(月)~26(火)」「5/25(金)18:30、7(土)18:00 」のような文字列で表示したい場合に、この文字列を保存する為のフィールドを作って05/25と05/26のレコードにそれぞれ同じものを保存する方法がスマートな方法なのかどうかということです。保存しない場合は、プログラム上でやるしかないのでしょうか?
一般的にどのよな手法が使われているのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【SQL】existsでの商演算
-
Accessで別テーブルの値をフォ...
-
access 自動採番 「10-AA-000...
-
沿線コード
-
ACCESSで大量の更新を行うと「...
-
実績累計の求め方と意味を教え...
-
MERGE文を単体テーブルに対して...
-
[VBA] ADOの Clone と AddNew
-
サブレンジ分割されたNDB(富士...
-
sqlplusの処理が途中でとまる
-
【至急】Accessでの大量データ...
-
unionの結果は集計はできないで...
-
SET句内で複数の条件を指定して...
-
アクセスでレポートの1印刷内...
-
ちなみになぜv=(v・e1)e1+(v・e...
-
"カレントレコードがありません...
-
ACCESSでテーブルのMAX値(文字...
-
空白文字とスペースの検索
-
VB6.0のIsNull関数に相当するもの
-
DataGridViewの内容をDBに反映...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessで別テーブルの値をフォ...
-
最新の日付とその金額をクエリ...
-
Accessでのレコード存在チェック
-
[Access]異なるレコード間の文...
-
【SQL】existsでの商演算
-
access 自動採番 「10-AA-000...
-
Recordset.FindFirstについて
-
access 自動採番 年が変わる...
-
【アクセスVBA】テーブルにフィ...
-
質問です。 下記のテーブルとデ...
-
access 請求番号の自動採番
-
Accessで日付が変わると番号が...
-
アクセスで「空き番」の確認
-
【Access】選択クエリのグルー...
-
Access 文字+年ごとの自動採番
-
Access:抽出して、色をつけたい。
-
vba 直前の操作はキャンセルさ...
-
SELECT * FROM `生徒名簿` INNE...
-
サイベースには、オラクルのROW...
-
条件をつけて日付の古い行を抜...
おすすめ情報