From 3d0f989cee9d7c426c759588539dd06c14fa70ea Mon Sep 17 00:00:00 2001 From: Ben Burwell Date: Sun, 2 Aug 2015 17:31:36 -0400 Subject: let's get v1 going here --- db/schema.sql | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 db/schema.sql (limited to 'db/schema.sql') diff --git a/db/schema.sql b/db/schema.sql new file mode 100644 index 0000000..a7509da --- /dev/null +++ b/db/schema.sql @@ -0,0 +1,36 @@ +-- Create the phrase table +-- This will hold the phrases with an associated ID +-- Phrases will be varchars of solfege syllables normalized as: +-- a = do +-- b = do+/re- +-- c = re +-- d = re+/mi- +-- e = mi +-- f = fa +-- g = fa+/so- +-- h = so +-- i = so+/la- +-- j = la +-- k = la+/ti- +-- l = ti +CREATE TABLE IF NOT EXISTS phrases ( + phrase_id BIGSERIAL PRIMARY KEY, + solfege VARCHAR(30) NOT NULL UNIQUE +); + +-- Create a table that allows us to have a many-to-many +-- relationship between phrases and songs (i.e., a phrase can be +-- contained within multiple songs, and a song can have multiple phrases). +CREATE TABLE IF NOT EXISTS phrase_song ( + phrase_id BIGINT NOT NULL, + song_id BIGINT NOT NULL +); + +CREATE TABLE IF NOT EXISTS songs ( + song_id BIGSERIAL PRIMARY KEY, + title VARCHAR(255), + artist_name VARCHAR(255) +); + +-- Now we need an index that will allow us to search more quickly for phrases +CREATE UNIQUE INDEX phrases_solfege ON phrases (solfege); -- cgit v1.2.3