CDデータ及びレビューデータの作成のしやすさ、検索や他CDへの関連などを実現できるスマートな方法がありましたらご教授下さい。
CDのデータとレビューのデータを分けるかどうかと言うのも悩みどころです。
使用経験があるのはMySQL、XML、XMLDOM、XSLT等です。PHPで実現可能であれば他のDBや機能を用いるのでもかまいません。
データ構造をメインに解説して頂けると嬉しいです。URLは特になくて構いません。
Urlダミーです
MySQLを前提に基本設計だけを提案します
[マスタテーブル]
■メディアマスタ(CDかDVDかとか)
■ジャンルマスタ
■レーベルマスタ(会社とレーベル名)
■アーティストマスタ(名前・画像パスとか)
[トランザクションテーブル]
■CDデータトランザクション
画像パス・CDの内容・発売日・発売予定日などを格納
キーはメディアID,ジャンルID,レーベルID,アーティストID,CDIDでユニーク
■CDレビュートランザクション
CD画像パス,アーティスト画像パス,レビュー記事
キーはCDデータトランザクションと同じにすればCDデータごとにレビュー書ける
[入力画面]
各マスタ画面
CDデータメンテナンス画面
CDレビューメンテナンス画面
[表示用画面]
CDデータ検索表示画面
CDレビュー検索表示画面・・・とか
[検索表示仕様]
メディア
レーベル
アーティスト
CDタイトル
発売日
発売予定日
レビュー登録日
などで検索・並び替え
ジャンル別やアーティスト別
今月発売のCDなど多彩な表示が可能
[発展]
曲名トランザクションテーブル(曲名・作詞・作曲・編集など)
歌詞トランザクションテーブル(歌詞Htmlへのパス格納)
などを新たに設けると
歌詞の参照もできる
こうゆうの考えるの楽しいですよね
(作るの大変ですが)
またまた投稿します
全く同じ名前の曲が同じCDに入っている場合は
データ上は別の曲IDを振るといいと思います
(元のCDがそうだからって考えです)
でも大抵は同名ではなく曲名の後ろにインストゥルメンタルとかカラオケとかなんかつくのではないでしょうか?
もしあったとしても曲名検索では前方一致検索にして曲名でGroup byもしくはDistinctでダブり無く表示できます
使い勝手がいい設計は各テーブルのキーの持たせ方と
リレーションの張り方が複雑になるので
一度システムを作る前にテーブルだけ構築して
サンプルデータ打ち込んでプロトタイプを検討したほうがいいですよ
uprideさん、再びの回答ありがとうございます。
同じIDを振るか違うIDを振るかはちょこっと作ってみて考えようと思います。
同じ曲というのはシングル曲がアルバムに入った場合などですね。編曲されてる場合は除きます。
そうすると、曲名から入っているCDを検索したり出来そうですので。
実際にそこまで大きなものを作るかは分かりませんが、何か楽しみになってきました。
ありがとうございました!
#実は一番大変なのはインターフェイスだったり?( ̄ー ̄)
この短時間にすてきな回答ありがとうございます。
テクニカルエンジニアDBに軽く不合格の私なので、こういうのを見ると感嘆のため息が出ます(^^;
歌詞トランザクションテーブルを曲名トランザクションテーブルから参照すればいいですね。
CDの内容の構成を作るとしたら
CD内容構成テーブルを作ればいいのかなぁ・・・
同じ曲が複数のCDに入っていたりもしますよね。
CDデータID, 曲名トランザクションID
(曲数分登録する)
CDデータに
曲1のID, 曲2のID ・・・
は流石にまずいですもんね(;´Д`)