2026-02-26 09:20:51 +01:00
|
|
|
-- 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),
|
2026-04-17 09:25:32 +02:00
|
|
|
cooperating_clubs JSONB DEFAULT '[]'::jsonb,
|
2026-02-26 09:20:51 +01:00
|
|
|
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
|
|
|
|
|
);
|