 	jgd_telefone VARCHAR(16) NULL,
 	jgd_email VARCHAR(64) NOT NULL,
 	jgd_tipo TINYINT(1) NOT NULL DEFAULT 0,
-	-- Tipos de jogador
-	-- 0 - Jogador normal
-	-- 1 - Jogador moderador
-	-- 2 - Jogador líder
 	jgd_status TINYINT(1) NOT NULL DEFAULT 1,
 	jgd_observacoes VARCHAR(256) CHARSET UTF8 NULL,
-	jgd_data_criacao DATETIME NOT NULL DEFAULT NOW()
+	jgd_data_criacao DATETIME NOT NULL DEFAULT NOW(),
+
+	FOREIGN KEY (ali_id) REFERENCES Aliancas(ali_id)
 ); 
 
 -- Tabela que controla quais jogadores estão em quais grupos
 -- Relação MUITOS -> MUITOS
 CREATE TABLE JogadoresEmGrupos (
-	FOREIGN KEY grp_id INT REFERENCES Grupos(grp_id),
-	FOREIGN KEY jgd_id INT REFERENCES Jogadores(jgd_id),
-	jeu_data_adicionado DATETIME NOT NULL DEFAULT NOW()
+	grp_id INT NOT NULL,
+	jgd_id INT NOT NULL,
+	jeu_data_adicionado DATETIME NOT NULL DEFAULT NOW(),
+
+	FOREIGN KEY (grp_id) REFERENCES Grupos(grp_id),
+	FOREIGN KEY (jgd_id) REFERENCES Jogadores(jgd_id)
 );
 
 CREATE TABLE Mapas (

	map_nome VARCHAR(64) CHARSET UTF8 NOT NULL
);

-- TODO:
-- Adicionar os mapas na hora da criação do banco de dados,
-- Pois os mesmos são estáticos e nunca mudarão

CREATE TABLE Missoes (
	FOREIGN KEY ali_id INT REFERENCES Aliancas(ali_id),
	mis_id INT NOT NULL,
	FOREIGN KEY map_id INT REFERENCES Mapas(map_id),
	-- mis_pontuacao_total -> poderá ser obtida através da soma de pontos de cada jogador em uma missão.
	mis_vitoria TINYINT(1) NOT NULL DEFAULT 0,
	mis_percentual_explorado TINYINT(1) NOT NULL DEFAULT 0,
	mis_data_criacao DATETIME NOT NULL DEFAULT NOW()
);

CREATE TABLE JogadoresEmMissoes (
	FOREIGN KEY jgd_id INT REFERENCES Jogadores(jgd_id),
	FOREIGN KEY mis_id INT REFERENCES Missoes(mis_id),
	FOREIGN KEY grp_id INT REFERENCES Grupos(grp_id),
	jem_pontuacao INT NOT NULL DEFAULT 0
);

CREATE TABLE Guerras (
	grr_id INT PRIMARY KEY AUTO_INCREMENT,
	grr_nome_adversario VARCHAR(64) CHARSET UTF8 NOT NULL, 
	-- map_id -> Só temos um mapa para guerras, não necessário
	-- grr_pontuacao_total -> poderá ser obtido através da soma de pontos de cada jogador em uma guerra.
	grr_vitoria TINYINT(1) NOT NULL DEFAULT 0,
	grr_data_criacao DATETIME NOT NULL DEFAULT NOW()
);

CREATE TABLE JogadoresEmGuerras (
	FOREIGN KEY jgd_id INT REFERENCES Jogadores(jgd_id),
	FOREIGN KEY grr_id INT REFERENCES Guerras(grr_id),
	FOREIGN KEY grp_id INT REFERENCES Grupos(grp_id),
	jeg_pontuacao INT NOT NULL DEFAULT 0
);

CREATE TABLE Usuarios (
	usr_id INT PRIMARY KEY AUTO_INCREMENT,
	usr_login VARCHAR(16) NOT NULL,
	usr_senha CHAR(64) NOT NULL,
	usr_data_criacao DATETIME NOT NULL DEFAULT NOW()
);

CREATE TABLE Aliancas (
	usr_id INT NOT NULL,
	ali_id INT PRIMARY KEY AUTO_INCREMENT,
	ali_nome VARCHAR(64) CHARSET UTF8 NOT NULL,
	ali_data_criacao DATETIME NOT NULL DEFAULT NOW(),

	FOREIGN KEY (usr_id) REFERENCES Usuarios(usr_id)
);

CREATE TABLE Grupos (
	ali_id int NOT NULL,
	grp_id INT PRIMARY KEY AUTO_INCREMENT,
	grp_nome VARCHAR(64) CHARSET UTF8 NULL,
	grp_data_criacao DATETIME  NOT NULL DEFAULT NOW(),

	FOREIGN KEY (ali_id) REFERENCES Aliancas(ali_id)
);

CREATE TABLE Jogadores (
	ali_id INT NOT NULL,
	jgd_id INT PRIMARY KEY AUTO_INCREMENT,
	jgd_nome VARCHAR(64) CHARSET UTF8 NULL,
	jgd_nickname VARCHAR(64) NOT NULL,
