-- Databank voetbal jaar 2009 - 2010

use competitie;

-- Vorige tabellen verwijderen

drop table persoonwedstrijd;
drop table wissel;
drop table doelpunt;
drop table kaart;
drop table persoonploeg;
drop table persoonfunctie;
drop table wedstrijd;
drop table ploeg;
drop table functie;
drop table persoon;
drop table stadion;
drop table gemeente;

-- Create table gemeente

create table gemeente (

	id	int not null unique auto_increment,
	postcode int not null,
	naam  varchar(100) not null,
	primary key (id)

);

-- Create table persoon

create table persoon (

	id	varchar(150) not null unique,
	naam	varchar(150) not null,
	foto  varchar(150) not null,
	nationaliteit varchar(5) not null,
	primary key (id)	

);

-- Create table functie

create table functie (

	id	int not null unique auto_increment ,
	naam	varchar(50) not null,
	primary key (naam)

);

-- Create table stadion

create table stadion (

	id	int not null unique auto_increment,
	naam	varchar(150) not null,
	capaciteit	int	 not null,
	straat	varchar(100) not null,
	nummer	int	not null,
	gemeenteid  int 	not null,
	foreign key (gemeenteid) references gemeente(id), 
	primary key (id)

);

-- Create table ploeg

create table ploeg (

	id	varchar(5) not null unique,
	naam	varchar(100) not null,
	clubkleuren varchar(50) not null,
	logo varchar(50) not null,
	website varchar(50) not null,
	stadionid int not null,
	foreign key (stadionid) references stadion(id),
	primary key (id) 

);

-- Create table wedstrijd

create table wedstrijd (

	id	int not null unique auto_increment,
	speeldag	int	     not null,
	thuisid	varchar(5) not null,
	uitid		varchar(5) not null,
	referee	varchar(150) not null,
	dag		date		not null,
	uur		time		not null,
	aantaltoeschouwers int 	not null,
	foreign key (thuisid) references ploeg(id),
	foreign key (uitid) references ploeg(id),
	foreign key (referee) references persoon(id),
	primary key (id)

);

-- Create table persoonploeg

create table persoonploeg (

	ploegid varchar(5) not null,
	persoonid varchar(150) not null,
	jaartal int not null,
	foreign key (ploegid) references ploeg(id),
	foreign key (persoonid) references persoon(id),
	primary key (ploegid,persoonid,jaartal)

);

-- Create table persoonfunctie

create table persoonfunctie (

	persoonid varchar(150) not null,
	functieid int not null,
	foreign key (persoonid) references persoon(id),
	foreign key (functieid) references functie(id),
	primary key (persoonid,functieid)

);

-- Create table kaart

create table kaart (
	
	matchid int not null,
	persoonid varchar(150) not null,
	kleur varchar(4) not null,
	minuut int not null,
	foreign key (matchid) references wedstrijd(id),
	foreign key (persoonid) references persoon(id),
	primary key (matchid,persoonid,kleur,minuut)

);

-- Create table doelpunt 

create table doelpunt (

	matchid int not null,
	persoonid varchar(150) not null,
	minuut int not null,
	owngoal bool default false,
	foreign key (matchid) references wedstrijd(id),
	foreign key (persoonid) references persoon(id),
	primary key (matchid,persoonid,minuut)

);

-- Create table wissel

create table wissel (

	matchid int not null,
	inid varchar(150) not null,
	uitid varchar(150) not null,
	minuut int null,
	foreign key (matchid) references wedstrijd(id),
	foreign key (inid) references persoon(id),
	foreign key (uitid) references persoon(id),
	primary key (matchid,inid,uitid)

);

-- Create table persoonwedstrijd

create table persoonwedstrijd (

	persoonid varchar(150) not null,
	matchid int not null,
	foreign key (persoonid) references persoon(id),
	foreign key (matchid) references wedstrijd(id),
	primary key (matchid,persoonid)

);

GRANT ALL PRIVILEGES ON competitie.* TO 'gast'@'localhost' IDENTIFIED BY 'gast' WITH GRANT OPTION;