Advertisement
BobbyGeorgiev

Untitled

Oct 14th, 2023
1,330
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PostgreSQL 2.98 KB | Source Code | 0 0
  1. CREATE TABLE towns(
  2.     id SERIAL PRIMARY KEY,
  3.     name VARCHAR(45) NOT NULL
  4. );
  5.  
  6. CREATE TABLE stadiums(
  7.     id SERIAL PRIMARY KEY,
  8.     name VARCHAR(45) NOT NULL,
  9.     capacity INT NOT NULL,
  10.     town_id INT NOT NULL,
  11.     CONSTRAINT ck_stadiums_capacity
  12.         CHECK ( capacity > 0 ),
  13.     CONSTRAINT fk_stadiums_towns
  14.         FOREIGN KEY (town_id)
  15.         REFERENCES towns(id)
  16.         ON UPDATE CASCADE
  17.         ON DELETE CASCADE
  18. );
  19.  
  20. CREATE TABLE teams(
  21.     id SERIAL PRIMARY KEY,
  22.     name VARCHAR(45) NOT NULL,
  23.     established DATE NOT NULL,
  24.     fan_base INT NOT NULL DEFAULT 0,
  25.     stadium_id INT NOT NULL,
  26.     CONSTRAINT ck_teams_fan_base
  27.         CHECK ( fan_base >= 0 ),
  28.     CONSTRAINT fk_teams_stadiums
  29.         FOREIGN KEY (stadium_id)
  30.         REFERENCES stadiums(id)
  31.         ON UPDATE CASCADE
  32.         ON DELETE CASCADE
  33. );
  34.  
  35. CREATE TABLE coaches(
  36.     id SERIAL PRIMARY KEY,
  37.     first_name VARCHAR(10) NOT NULL,
  38.     last_name VARCHAR(20) NOT NULL,
  39.     salary NUMERIC(10, 2) NOT NULL DEFAULT 0,
  40.     coach_level INT NOT NULL DEFAULT 0,
  41.     CONSTRAINT ck_coaches_salary
  42.         CHECK ( salary >= 0 ),
  43.     CONSTRAINT ck_coaches_coach_level
  44.         CHECK ( coach_level >= 0 )
  45. );
  46.  
  47. CREATE TABLE skills_data(
  48.     id SERIAL PRIMARY KEY,
  49.     dribbling INT DEFAULT 0,
  50.     pace INT DEFAULT 0,
  51.     passing INT DEFAULT 0,
  52.     shooting INT DEFAULT 0,
  53.     speed INT DEFAULT 0,
  54.     strength INT DEFAULT 0,
  55.     CONSTRAINT ck_skills_data_dribbling
  56.         CHECK ( dribbling>= 0 ),
  57.     CONSTRAINT ck_skills_data_pace
  58.         CHECK ( pace >= 0 ),
  59.     CONSTRAINT ck_skills_data_passing
  60.         CHECK ( passing >= 0 ),
  61.     CONSTRAINT ck_skills_data_shooting
  62.         CHECK ( shooting >= 0 ),
  63.     CONSTRAINT ck_skills_data_speed
  64.         CHECK ( speed >= 0 ),
  65.     CONSTRAINT ck_skills_data_strength
  66.         CHECK ( strength >= 0 )
  67. );
  68.  
  69. CREATE TABLE players(
  70.     id SERIAL PRIMARY KEY,
  71.     first_name VARCHAR(10) NOT NULL,
  72.     last_name VARCHAR(20) NOT NULL,
  73.     age INT NOT NULL DEFAULT 0,
  74.     position CHAR(1) NOT NULL,
  75.     salary NUMERIC(10, 2) NOT NULL DEFAULT 0,
  76.     hire_date TIMESTAMP,
  77.     skills_data_id INT NOT NULL,
  78.     team_id INT,
  79.     CONSTRAINT ck_players_age
  80.         CHECK ( age >= 0 ),
  81.     CONSTRAINT ck_players_salary
  82.         CHECK ( salary >= 0 ),
  83.     CONSTRAINT fk_players_skills_data
  84.         FOREIGN KEY (skills_data_id)
  85.         REFERENCES skills_data(id)
  86.         ON UPDATE CASCADE
  87.         ON DELETE CASCADE,
  88.     CONSTRAINT fk_players_teams
  89.         FOREIGN KEY (team_id)
  90.         REFERENCES teams(id)
  91.         ON UPDATE CASCADE
  92.         ON DELETE CASCADE
  93. );
  94.  
  95. CREATE TABLE players_coaches(
  96.     player_id INT NOT NULL,
  97.     coach_id INT NOT NULL,
  98.     CONSTRAINT fk_players_coaches_players
  99.         FOREIGN KEY (player_id)
  100.         REFERENCES players(id)
  101.         ON UPDATE CASCADE
  102.         ON DELETE CASCADE,
  103.     CONSTRAINT fk_players_coaches_coaches
  104.         FOREIGN KEY (coach_id)
  105.         REFERENCES coaches(id)
  106.         ON UPDATE CASCADE
  107.         ON DELETE CASCADE
  108. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement