2006/08/18(金)曲管理のためのWebアプリケーション::DB検討中2

前回のコメントからデータベーススキーマを再検討。

DB構造

Table:Track

個別トラックの情報を記録するためのテーブル

TrackIDPrimary Key
TrackName曲タイトル
TrackYomi曲タイトルよみ
TrackNoアルバムの中のトラックナンバー
ArtistIDアーティストID
WriterID作詞者ID
ComposerID作曲者ID
Arranger編曲者ID
AlbumIDアルバムID
GenreIDジャンルID
Time曲時間
Rating曲の評価
Commentコメント

Table:Album

アルバム全体の情報を記録するためのテーブル

AlbumIDPrimary Key
AlbumNameアルバム名
AlbumYomiアルバム名よみ
DiscNoアルバム中の何枚目か
DiskTypeIDディスクタイプID
ArtistIDアーティストID
ReleaseDateリリース日
SPEC規格品番
TotalTrackアルバムのトラック総数
TotalTimeアルバムの全時間
Commentコメント
asinAmazonとの連携*1

Table:Artist

アーティスト情報を記録するためのテーブル

ArtistIDPrimary Key
ArtistNameアーティスト名
ArtistYomiアーティスト名よみ
Parent親となるアーティストID
AliasIDアーティスト名のエイリアス
URIオフィシャルサイトURI
Commentコメント

Table:DiskType

8cmシングルとかベストアルバムとかのディスク種別を記録するためのテーブル

DiskTypeIDPrimary Key
DiskTypeディスクタイプ

Table:GenreID

J-POPとかのジャンル情報を記録するためのテーブル

GenreIDPrimary Key
Genreジャンル

Table:Alias

AliasIDPrimary Key
AliasアーティストIDを指定

作詞、作曲、編曲者のデータベースはアーティストテーブルを使用するつもり。

アーティストの主従関係は、親となるアーティストを指定。
例えば、ave;new feat. 佐倉沙織だと「ave;new」と「佐倉沙織」を指定するといった感じ。

アーティストのエイリアスは別途エイリアステーブルを使用する。
エイリアスで指定された場合、異なる名称でも同格であるとする。

あと、今考えているのはマルチユーザーにより情報の追加・補完が可能なようにするというのを考えている。
CDDB機能については、他のCDDBサーバからのインポートの他、CDDBサーバとしても使用できるようにしたいなぁ。

*1 : 将来的に画像表示などができればいいなぁ