14 lines
482 B
SQL
14 lines
482 B
SQL
CREATE TABLE albums (
|
|
id SERIAL PRIMARY KEY UNIQUE NOT NULL,
|
|
title VARCHAR NOT NULL,
|
|
release_date DATE
|
|
);
|
|
|
|
-- A table to store artists for each album
|
|
-- Needed because an album can have multiple artists, but in Postgres we can't store an array of foreign keys
|
|
CREATE TABLE album_artists (
|
|
album_id INTEGER REFERENCES albums(id) ON DELETE CASCADE NOT NULL,
|
|
artist_id INTEGER REFERENCES artists(id) ON DELETE CASCADE NULL,
|
|
PRIMARY KEY (album_id, artist_id)
|
|
);
|