Audio::DB::Adaptor::dbi::mysql 0.01 review

Download
by rbytes.net on

Audio::DB::Adaptor::dbi::mysql implements a specific mysql database schema that is compatible with Audio::DB

License: Perl Artistic License
File size: 61K
Developer: Todd W. Harris
0 stars award from rbytes.net

Audio::DB::Adaptor::dbi::mysql implements a specific mysql database schema that is compatible with Audio::DB. It inherits from Audio::DB. In addition to implementing the abstract SQL-generating methods of Audio::DB::Adaptor::dbi, this module also implements the data loading functionality of Audio::DB.

The schema uses several tables:

artists This the artists data table. Its columns are:

artist_id artist ID (integer); primary key artist artist name (string); may be null; indexed

albums This is the albums table. Its columns are:

album_id album ID (integer); primary key
album album name (string); may be null; indexed
album_type one of compilation or standard; may be null
total_tracks total songs on album (integer)
year self explanatory, no? (integer)
songs This is the primary songs table. Its columns are:
song_id song ID (integer); primary key
title song title (string)
artist_id artist ID (integer); indexed
album_id album ID (integer)
genre_id genre ID (integer) # may be superceded...see note
track track number (integer)
duration formatted song length (string)
seconds length in seconds (integer)
lyrics song lyrics (long text)
comment ID3 tag comment (text)
bitrate encoded bitrate (integer)
samplerate sample rate (real)
format format of the file (ie MPEG) (string)
channels channels (string)
tag_types type of ID3 tags present (ie ID3v2.3.0) (text)
filename file name (text)
filesize file size in bytes (real)
filepath absolute path (text)
year the year tag for single tracks
(since singles or songs on compilations
each may be different) (integer)
uber_playcount total times the song has been played
uber_rating overall song rating (see "users" below)

Currently, ID3 tags support but a single genre. The genre_id is now stored with the song table. Multiple genres may be assigned via the song_genres join table below. The 'year' is a database denormalization that allows the assignment of years to single tracks not belonging to an album.

Requirements:
Perl

Audio::DB::Adaptor::dbi::mysql 0.01 keywords