 	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
+-- Criando os mapas padrões
+INSERT INTO Mapas(map_nome)
+VALUES ('Mapa 1');
+INSERT INTO Mapas(map_nome)
+VALUES ('Mapa 2');
+INSERT INTO Mapas(map_nome)
+VALUES ('Mapa 3');
+INSERT INTO Mapas(map_nome)
+VALUES ('Mapa 4');
+INSERT INTO Mapas(map_nome)
+VALUES ('Mapa 5');
+INSERT INTO Mapas(map_nome)
+VALUES ('Mapa 6');
 
 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.
+	ali_id INT NOT NULL,
+	map_id INT NOT NULL,
+	mis_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
 	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()
+	mis_data_criacao DATETIME NOT NULL DEFAULT NOW(),
+
+	FOREIGN KEY (ali_id) REFERENCES Aliancas(ali_id),
+	FOREIGN KEY (map_id) REFERENCES Mapas(map_id)
 );
 
 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
+	jgd_id INT NOT NULL,
+	mis_id INT NOT NULL,
+	grp_id INT NOT NULL,
+	jem_pontuacao INT NOT NULL DEFAULT 0,
+
+	FOREIGN KEY (jgd_id) REFERENCES Jogadores(jgd_id),
+	FOREIGN KEY (mis_id) REFERENCES Missoes(mis_id),
+	FOREIGN KEY (grp_id) REFERENCES Grupos(grp_id)
 );
 
 CREATE TABLE Guerras (
+	ali_id INT NOT NULL,
 	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()
+	grr_data_criacao DATETIME NOT NULL DEFAULT NOW(),
+
+	FOREIGN KEY (ali_id) REFERENCES Aliancas(ali_id)
 );
 
 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
+	jgd_id INT NOT NULL,
+	grr_id INT NOT NULL,
+	grp_id INT NOT NULL,
+	jeg_pontuacao INT NOT NULL DEFAULT 0,
+
+	FOREIGN KEY (jgd_id) REFERENCES Jogadores(jgd_id),
+	FOREIGN KEY (grr_id) REFERENCES Guerras(grr_id),
+	FOREIGN KEY (grp_id) REFERENCES Grupos(grp_id)
 );

CREATE TABLE Usuarios (
	usr_id INT PRIMARY KEY AUTO_INCREMENT,
	usr_login VARCHAR(16) NOT NULL,
	-- senha -> sha256 64 carácteres
	usr_senha CHAR(64) NOT NULL,
	usr_nickname VARCHAR(64) NOT NULL,
	usr_data_criacao DATETIME NOT NULL DEFAULT NOW()
);

CREATE TABLE Aliancas (
	FOREIGN KEY usr_id INT REFERENCES Usuarios(usr_id),
	-- Não vamos manipular apenas uma aliança, portanto precisamos de uma tabela de alianças
	ali_id INT PRIMARY KEY AUTO_INCREMENT,
	ali_nome VARCHAR(64) CHARSET UTF8 NOT NULL,
	ali_data_criacao DATETIME NOT NULL DEFAULT NOW()
);

CREATE TABLE Grupos (
	-- Cada grupo deve pertencer a uma aliança
	-- Máximo de grupos: 3
	FOREIGN KEY ali_id INT REFERENCES Aliancas(ali_id),
	grp_id INT PRIMARY KEY AUTO_INCREMENT,
	grp_nome VARCHAR(64) CHARSET UTF8 NULL
);

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

	jgd_telefone VARCHAR(16) NULL,
	jgd_email VARCHAR(64) NOT NULL,
	jgd_tipo TINYINT(1) NOT NULL DEFAULT 0,
	jgd_status TINYINT(1) NOT NULL DEFAULT 1,
	jgd_observacoes VARCHAR(256) CHARSET UTF8 NULL,
	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 (
	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 (
