All pastes #90008 Raw Edit

Unnamed

public text v1 · immutable
#90008 ·published 2006-07-17 06:37 UTC
rendered paste body
CREATE TABLE submitter_strings (
    submitterstrid INTEGER UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE,
    submitter VARCHAR(60) NOT NULL,
    submitcounter INTEGER UNSIGNED NOT NULL DEFAULT '1'
);
CREATE UNIQUE INDEX idu_submitter on submitter_strings (submitter);

CREATE TABLE artist_strings (
    artiststrid INTEGER UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE,
    artist VARCHAR(60) NOT NULL
);
CREATE UNIQUE INDEX idu_artist on artist_strings (artist);

CREATE TABLE album_sampler_strings (
    albumsamplerstrid INTEGER UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE,
    albumsampler VARCHAR(60) NOT NULL
);
CREATE UNIQUE INDEX idu_album on album_sampler_strings (albumsampler);

CREATE TABLE song_strings (
    songstrid INTEGER UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE,
    song VARCHAR(120) NOT NULL
);
CREATE UNIQUE INDEX idu_song on song_strings (song);

CREATE TABLE genre_strings (
    genrestrid INTEGER UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE,
    genre VARCHAR(30) NOT NULL
);
CREATE UNIQUE INDEX idu_genre on genre_strings (genre);

CREATE TABLE song2artist ( 
    songstrid INTEGER UNSIGNED NOT NULL,
    artiststrid INTEGER UNSIGNED NOT NULL,
    playtime INTEGER UNSIGNED NOT NULL,
    playtimevotes INTEGER UNSIGNED NOT NULL DEFAULT '1'
);
ALTER TABLE song2artist ADD CONSTRAINT pk_song2artist PRIMARY KEY (songstrid,artiststrid,playtime);
ALTER TABLE song2artist ADD CONSTRAINT fk_s2a_songstrid FOREIGN KEY (songstrid) REFERENCES song_strings (songstrid);
ALTER TABLE song2artist ADD CONSTRAINT fk_s2a_artiststrid FOREIGN KEY (artiststrid) REFERENCES artist_strings (artiststrid);

CREATE TABLE artist2album (
    artiststrid INTEGER UNSIGNED NOT NULL,
    albumsamplerstrid INTEGER UNSIGNED NOT NULL
);
ALTER TABLE artist2album ADD CONSTRAINT pk_artist2album PRIMARY KEY (artiststrid,albumsamplerstrid);
ALTER TABLE artist2album ADD CONSTRAINT fk_a2a_artiststrid FOREIGN KEY (artiststrid) REFERENCES artist_strings (artiststrid);
ALTER TABLE artist2album ADD CONSTRAINT fk_a2a_albumsamplerstrid FOREIGN KEY (albumsamplerstrid) REFERENCES album_sampler_strings (albumsamplerstrid);

CREATE TABLE song2artist2album2track (
    songstrid INTEGER UNSIGNED NOT NULL,
    artiststrid INTEGER UNSIGNED NOT NULL,
    albumsamplerstrid INTEGER UNSIGNED NOT NULL,
    track INTEGER UNSIGNED NOT NULL
);
ALTER TABLE song2artist2album2track ADD CONSTRAINT pk_song2artist2album2track PRIMARY KEY (songstrid,artiststrid,albumsamplerstrid,track);
ALTER TABLE song2artist2album2track ADD CONSTRAINT fk_s2a2a2t_songstrid FOREIGN KEY (songstrid) REFERENCES song_strings (songstrid);
ALTER TABLE song2artist2album2track ADD CONSTRAINT fk_s2a2a2t_artiststrid FOREIGN KEY (artiststrid) REFERENCES artist_strings (artiststrid);
ALTER TABLE song2artist2album2track ADD CONSTRAINT fk_s2a2a2t_albumsamplerstrid FOREIGN KEY (albumsamplerstrid) REFERENCES album_sampler_strings (albumsamplerstrid);
ALTER TABLE song2artist2album2track ADD CONSTRAINT fk_s2a2a2t_song2artistid FOREIGN KEY (songstrid,artiststrid) REFERENCES song2artist (songstrid,artiststrid);

CREATE TABLE song2artist2genrevotes (
    songstrid INTEGER UNSIGNED NOT NULL,
    artiststrid INTEGER UNSIGNED NOT NULL,
    genrestrid INTEGER UNSIGNED NOT NULL,
    genrevotes INTEGER UNSIGNED NOT NULL DEFAULT '1'
);
ALTER TABLE song2artist2genrevotes ADD CONSTRAINT pk_song2artist2genrevotes PRIMARY KEY (songstrid,artiststrid,genrestrid);
ALTER TABLE song2artist2genrevotes ADD CONSTRAINT fk_s2a2gvotes_songstrid FOREIGN KEY (songstrid) REFERENCES song_strings (songstrid);
ALTER TABLE song2artist2genrevotes ADD CONSTRAINT fk_s2a2gvotes_artiststrid FOREIGN KEY (artiststrid) REFERENCES artist_strings (artiststrid);
ALTER TABLE song2artist2genrevotes ADD CONSTRAINT fk_s2a2gvotes_genrestrid FOREIGN KEY (genrestrid) REFERENCES genre_strings (genrestrid);
ALTER TABLE song2artist2genrevotes ADD CONSTRAINT fk_s2a2gvotes_song2artistid FOREIGN KEY (songstrid,artiststrid) REFERENCES song2artist (songstrid,artiststrid);

CREATE TABLE song2artist2yearevotes (
    songstrid INTEGER UNSIGNED NOT NULL,
    artiststrid INTEGER UNSIGNED NOT NULL,
    ayear INTEGER UNSIGNED NOT NULL,
    yearvotes INTEGER UNSIGNED NOT NULL DEFAULT '1'
);
ALTER TABLE song2artist2yearevotes ADD CONSTRAINT pk_song2artist2yearvotes PRIMARY KEY (songstrid,artiststrid,ayear);
ALTER TABLE song2artist2yearevotes ADD CONSTRAINT fk_s2a2yvotes_songstrid FOREIGN KEY (songstrid) REFERENCES song_strings (songstrid);
ALTER TABLE song2artist2yearevotes ADD CONSTRAINT fk_s2a2yvotes_artiststrid FOREIGN KEY (artiststrid) REFERENCES artist_strings (artiststrid);

CREATE TABLE cds (
    cdid INTEGER UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE,
    discid VARCHAR(8) NOT NULL,
    albumsamplerstrid INTEGER UNSIGNED NOT NULL,
    playtime INTEGER UNSIGNED NOT NULL,
    submitterstrid  INTEGER UNSIGNED NOT NULL
);
CREATE UNIQUE INDEX idu_cds on cds (discid,albumsamplerstrid);
ALTER TABLE cds ADD CONSTRAINT fk_cds_albumsamplerstrid FOREIGN KEY (albumsamplerstrid) REFERENCES album_sampler_strings (albumsamplerstrid);
ALTER TABLE cds ADD CONSTRAINT fk_cds_submitterstrid FOREIGN KEY (submitterstrid) REFERENCES submitter_strings (submitterstrid);

CREATE TABLE cds2yearvotes (
    cdid INTEGER UNSIGNED NOT NULL,
    ayear SMALLINT UNSIGNED NOT NULL,
    yearvotes INTEGER UNSIGNED NOT NULL DEFAULT '1'
);
ALTER TABLE cds2yearvotes ADD CONSTRAINT pk_cds2yearvotes PRIMARY KEY (cdid,ayear);
ALTER TABLE cds2yearvotes ADD CONSTRAINT fk_c2yvotes_cdid FOREIGN KEY (cdid) REFERENCES cds (cdid);

CREATE TABLE cds2genrevotes (
    cdid INTEGER UNSIGNED NOT NULL,
    genrestrid INTEGER UNSIGNED NOT NULL,
    genrevotes INTEGER UNSIGNED NOT NULL DEFAULT '1'
);
ALTER TABLE cds2genrevotes ADD CONSTRAINT pk_cds2genrevotes PRIMARY KEY (cdid,genrestrid);
ALTER TABLE cds2genrevotes ADD CONSTRAINT fk_c2gvotes_cdid FOREIGN KEY (cdid) REFERENCES cds (cdid);
ALTER TABLE cds2genrevotes ADD CONSTRAINT fk_c2gvotes_genrestrid FOREIGN KEY (genrestrid) REFERENCES genre_strings (genrestrid);

CREATE TABLE cdtracks (
    cdid INTEGER UNSIGNED NOT NULL,
    songstrid INTEGER UNSIGNED NOT NULL,
    artiststrid INTEGER UNSIGNED NOT NULL,    
    track SMALLINT UNSIGNED NOT NULL,
    offset INTEGER UNSIGNED NOT NULL
);
ALTER TABLE cdtracks ADD CONSTRAINT pk_cdtracks PRIMARY KEY (cdid,songstrid,artiststrid,track);
ALTER TABLE cdtracks ADD CONSTRAINT fk_cdtracks_songstrid FOREIGN KEY (songstrid) REFERENCES song_strings (songstrid);
ALTER TABLE cdtracks ADD CONSTRAINT fk_cdtracks_artiststrid FOREIGN KEY (artiststrid) REFERENCES artist_strings (artiststrid);
ALTER TABLE cdtracks ADD CONSTRAINT fk_cdtracks_song2artistid FOREIGN KEY (songstrid,artiststrid) REFERENCES song2artist (songstrid,artiststrid);