232 lines
6.3 KiB
MySQL
232 lines
6.3 KiB
MySQL
|
SET statement_timeout = 0;
|
||
|
SET lock_timeout = 0;
|
||
|
SET idle_in_transaction_session_timeout = 0;
|
||
|
SET client_encoding = 'UTF8';
|
||
|
SET standard_conforming_strings = on;
|
||
|
SELECT pg_catalog.set_config('search_path', '', false);
|
||
|
SET check_function_bodies = false;
|
||
|
SET xmloption = content;
|
||
|
SET client_min_messages = warning;
|
||
|
SET row_security = off;
|
||
|
|
||
|
SET default_tablespace = '';
|
||
|
|
||
|
SET default_table_access_method = heap;
|
||
|
|
||
|
--
|
||
|
-- Name: matches; Type: TABLE; Schema: public;
|
||
|
--
|
||
|
|
||
|
CREATE TABLE public.matches (
|
||
|
match_id integer NOT NULL,
|
||
|
player1_uid integer NOT NULL,
|
||
|
player2_uid integer,
|
||
|
player1_score integer,
|
||
|
player2_score integer,
|
||
|
player1_elo_change integer,
|
||
|
player2_elo_change integer,
|
||
|
match_date timestamp without time zone DEFAULT CURRENT_TIMESTAMP
|
||
|
);
|
||
|
|
||
|
|
||
|
|
||
|
--
|
||
|
-- Name: matches_2v2; Type: TABLE; Schema: public;
|
||
|
--
|
||
|
|
||
|
CREATE TABLE public.matches_2v2 (
|
||
|
match_id integer NOT NULL,
|
||
|
player1_team1_uid integer,
|
||
|
player2_team1_uid integer,
|
||
|
player1_team2_uid integer,
|
||
|
player2_team2_uid integer,
|
||
|
player1_team1_score integer DEFAULT 0,
|
||
|
player2_team1_score integer DEFAULT 0,
|
||
|
player1_team2_score integer DEFAULT 0,
|
||
|
player2_team2_score integer DEFAULT 0,
|
||
|
trueskill_mu_team1 double precision,
|
||
|
trueskill_mu_team2 double precision,
|
||
|
trueskill_sigma_team1 double precision,
|
||
|
trueskill_sigma_team2 double precision,
|
||
|
team1_score integer DEFAULT 0,
|
||
|
team2_score integer DEFAULT 0,
|
||
|
match_date timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
|
||
|
winner_team integer DEFAULT 0,
|
||
|
match_status character varying(20) DEFAULT 'in_progress'::character varying
|
||
|
);
|
||
|
|
||
|
|
||
|
|
||
|
--
|
||
|
-- Name: matches_2v2_match_id_seq; Type: SEQUENCE; Schema: public;
|
||
|
--
|
||
|
|
||
|
CREATE SEQUENCE public.matches_2v2_match_id_seq
|
||
|
AS integer
|
||
|
START WITH 1
|
||
|
INCREMENT BY 1
|
||
|
NO MINVALUE
|
||
|
NO MAXVALUE
|
||
|
CACHE 1;
|
||
|
|
||
|
|
||
|
|
||
|
--
|
||
|
-- Name: matches_2v2_match_id_seq; Type: SEQUENCE OWNED BY; Schema: public;
|
||
|
--
|
||
|
|
||
|
ALTER SEQUENCE public.matches_2v2_match_id_seq OWNED BY public.matches_2v2.match_id;
|
||
|
|
||
|
|
||
|
--
|
||
|
-- Name: matches_match_id_seq; Type: SEQUENCE; Schema: public;
|
||
|
--
|
||
|
|
||
|
CREATE SEQUENCE public.matches_match_id_seq
|
||
|
AS integer
|
||
|
START WITH 1
|
||
|
INCREMENT BY 1
|
||
|
NO MINVALUE
|
||
|
NO MAXVALUE
|
||
|
CACHE 1;
|
||
|
|
||
|
|
||
|
|
||
|
--
|
||
|
-- Name: matches_match_id_seq; Type: SEQUENCE OWNED BY; Schema: public;
|
||
|
--
|
||
|
|
||
|
ALTER SEQUENCE public.matches_match_id_seq OWNED BY public.matches.match_id;
|
||
|
|
||
|
|
||
|
--
|
||
|
-- Name: tournament_matches; Type: TABLE; Schema: public;
|
||
|
--
|
||
|
|
||
|
CREATE TABLE public.tournament_matches (
|
||
|
tournament_match_id integer NOT NULL,
|
||
|
tournament_id integer NOT NULL,
|
||
|
round integer NOT NULL,
|
||
|
match_id integer,
|
||
|
player1_uid integer NOT NULL,
|
||
|
player2_uid integer NOT NULL,
|
||
|
winner_uid integer,
|
||
|
match_date timestamp without time zone DEFAULT CURRENT_TIMESTAMP
|
||
|
);
|
||
|
|
||
|
|
||
|
|
||
|
--
|
||
|
-- Name: tournament_matches_tournament_match_id_seq; Type: SEQUENCE; Schema: public;
|
||
|
--
|
||
|
|
||
|
CREATE SEQUENCE public.tournament_matches_tournament_match_id_seq
|
||
|
AS integer
|
||
|
START WITH 1
|
||
|
INCREMENT BY 1
|
||
|
NO MINVALUE
|
||
|
NO MAXVALUE
|
||
|
CACHE 1;
|
||
|
|
||
|
|
||
|
|
||
|
ALTER SEQUENCE public.tournament_matches_tournament_match_id_seq OWNED BY public.tournament_matches.tournament_match_id;
|
||
|
|
||
|
CREATE TABLE public.tournaments (
|
||
|
tournament_id integer NOT NULL,
|
||
|
name character varying(255) NOT NULL,
|
||
|
start_date date NOT NULL,
|
||
|
end_date date,
|
||
|
status character varying(50) DEFAULT 'upcoming'::character varying,
|
||
|
bracket jsonb
|
||
|
);
|
||
|
|
||
|
|
||
|
|
||
|
CREATE SEQUENCE public.tournaments_tournament_id_seq
|
||
|
AS integer
|
||
|
START WITH 1
|
||
|
INCREMENT BY 1
|
||
|
NO MINVALUE
|
||
|
NO MAXVALUE
|
||
|
CACHE 1;
|
||
|
|
||
|
|
||
|
ALTER SEQUENCE public.tournaments_tournament_id_seq OWNED BY public.tournaments.tournament_id;
|
||
|
|
||
|
CREATE TABLE public.users (
|
||
|
uid integer NOT NULL,
|
||
|
email character varying(255) NOT NULL,
|
||
|
display_name character varying(100) NOT NULL,
|
||
|
password_hash character varying(255) NOT NULL,
|
||
|
current_elo integer DEFAULT 0,
|
||
|
friend_list jsonb DEFAULT '[]'::jsonb,
|
||
|
session_token character varying,
|
||
|
openskill_mu double precision DEFAULT 25.0,
|
||
|
openskill_sigma double precision DEFAULT 8.333
|
||
|
);
|
||
|
|
||
|
|
||
|
|
||
|
CREATE SEQUENCE public.users_uid_seq
|
||
|
AS integer
|
||
|
START WITH 1
|
||
|
INCREMENT BY 1
|
||
|
NO MINVALUE
|
||
|
NO MAXVALUE
|
||
|
CACHE 1;
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
ALTER SEQUENCE public.users_uid_seq OWNED BY public.users.uid;
|
||
|
|
||
|
ALTER TABLE ONLY public.matches ALTER COLUMN match_id SET DEFAULT nextval('public.matches_match_id_seq'::regclass);
|
||
|
|
||
|
ALTER TABLE ONLY public.matches_2v2 ALTER COLUMN match_id SET DEFAULT nextval('public.matches_2v2_match_id_seq'::regclass);
|
||
|
|
||
|
|
||
|
ALTER TABLE ONLY public.tournament_matches ALTER COLUMN tournament_match_id SET DEFAULT nextval('public.tournament_matches_tournament_match_id_seq'::regclass);
|
||
|
|
||
|
ALTER TABLE ONLY public.tournaments ALTER COLUMN tournament_id SET DEFAULT nextval('public.tournaments_tournament_id_seq'::regclass);
|
||
|
|
||
|
ALTER TABLE ONLY public.users ALTER COLUMN uid SET DEFAULT nextval('public.users_uid_seq'::regclass);
|
||
|
|
||
|
ALTER TABLE ONLY public.matches_2v2
|
||
|
ADD CONSTRAINT matches_2v2_pkey PRIMARY KEY (match_id);
|
||
|
|
||
|
ALTER TABLE ONLY public.matches
|
||
|
ADD CONSTRAINT matches_pkey PRIMARY KEY (match_id);
|
||
|
|
||
|
ALTER TABLE ONLY public.tournament_matches
|
||
|
ADD CONSTRAINT tournament_matches_pkey PRIMARY KEY (tournament_match_id);
|
||
|
|
||
|
ALTER TABLE ONLY public.tournaments
|
||
|
ADD CONSTRAINT tournaments_pkey PRIMARY KEY (tournament_id);
|
||
|
|
||
|
ALTER TABLE ONLY public.users
|
||
|
ADD CONSTRAINT users_email_key UNIQUE (email);
|
||
|
|
||
|
ALTER TABLE ONLY public.users
|
||
|
ADD CONSTRAINT users_pkey PRIMARY KEY (uid);
|
||
|
|
||
|
ALTER TABLE ONLY public.matches
|
||
|
ADD CONSTRAINT matches_player1_uid_fkey FOREIGN KEY (player1_uid) REFERENCES public.users(uid);
|
||
|
|
||
|
ALTER TABLE ONLY public.matches
|
||
|
ADD CONSTRAINT matches_player2_uid_fkey FOREIGN KEY (player2_uid) REFERENCES public.users(uid);
|
||
|
|
||
|
ALTER TABLE ONLY public.tournament_matches
|
||
|
ADD CONSTRAINT tournament_matches_player1_uid_fkey FOREIGN KEY (player1_uid) REFERENCES public.users(uid);
|
||
|
|
||
|
ALTER TABLE ONLY public.tournament_matches
|
||
|
ADD CONSTRAINT tournament_matches_player2_uid_fkey FOREIGN KEY (player2_uid) REFERENCES public.users(uid);
|
||
|
|
||
|
ALTER TABLE ONLY public.tournament_matches
|
||
|
ADD CONSTRAINT tournament_matches_tournament_id_fkey FOREIGN KEY (tournament_id) REFERENCES public.tournaments(tournament_id) ON DELETE CASCADE;
|
||
|
|
||
|
ALTER TABLE ONLY public.tournament_matches
|
||
|
ADD CONSTRAINT tournament_matches_winner_uid_fkey FOREIGN KEY (winner_uid) REFERENCES public.users(uid);
|
||
|
|
||
|
|