Nye-TeeOff/schema.sql

77 lines
2.3 KiB
SQL

-- Slett gamle tabeller slik at vi starter med helt blanke ark
DROP TABLE IF EXISTS hole_lengths CASCADE;
DROP TABLE IF EXISTS holes CASCADE;
DROP TABLE IF EXISTS tees CASCADE;
DROP TABLE IF EXISTS courses CASCADE;
DROP TABLE IF EXISTS facilities CASCADE;
-- 1. Tabellen for ANLEGG (Fasilitet)
CREATE TABLE facilities (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
slug VARCHAR(255) UNIQUE NOT NULL,
description TEXT,
established_year INTEGER,
season VARCHAR(255),
address VARCHAR(255),
zipcode VARCHAR(50),
city VARCHAR(255),
county VARCHAR(255),
lat DOUBLE PRECISION,
lng DOUBLE PRECISION,
email VARCHAR(255),
phone VARCHAR(255),
website_url VARCHAR(255),
golfbox_booking_url VARCHAR(255),
golfbox_tournament_url VARCHAR(255),
cooperating_clubs JSONB DEFAULT '[]'::jsonb,
facebook_url VARCHAR(255),
instagram_url VARCHAR(255),
weather_url VARCHAR(255),
webcam_url VARCHAR(255),
golfamore BOOLEAN DEFAULT FALSE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 2. Tabellen for BANER (Tilhører et anlegg)
CREATE TABLE courses (
id SERIAL PRIMARY KEY,
facility_id INTEGER REFERENCES facilities(id) ON DELETE CASCADE,
name VARCHAR(255) NOT NULL,
holes INTEGER,
par INTEGER,
length_meters INTEGER,
course_type VARCHAR(255),
architect VARCHAR(255),
status VARCHAR(255),
is_main_course BOOLEAN DEFAULT TRUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 3. Tabellen for UTSLAG (Tilhører en bane)
CREATE TABLE tees (
id SERIAL PRIMARY KEY,
course_id INTEGER REFERENCES courses(id) ON DELETE CASCADE,
name VARCHAR(50) NOT NULL, -- F.eks. '64', 'Gul', 'Rød'
cr_men NUMERIC(4, 1),
slope_men INTEGER,
cr_women NUMERIC(4, 1),
slope_women INTEGER
);
-- 4. Tabellen for HULL (Tilhører en bane)
CREATE TABLE holes (
id SERIAL PRIMARY KEY,
course_id INTEGER REFERENCES courses(id) ON DELETE CASCADE,
hole_number INTEGER NOT NULL,
par INTEGER,
hcp_index INTEGER
);
-- 5. Tabellen for LENGDER (Knytter et hull til et spesifikt utslag)
CREATE TABLE hole_lengths (
id SERIAL PRIMARY KEY,
hole_id INTEGER REFERENCES holes(id) ON DELETE CASCADE,
tee_id INTEGER REFERENCES tees(id) ON DELETE CASCADE,
length_meters INTEGER
);