From d453585ab355c8994e1a0a8d0584b9178c1ff33c Mon Sep 17 00:00:00 2001 From: Gabriela Lemos Date: Mon, 30 Oct 2023 20:13:23 -0300 Subject: [PATCH] Update CREATE-BD.sql CREATE TABLE de acordo com novo modelo relacional. --- sql/CREATE-BD.sql | 251 +++++++++++++++++++++++++++++----------------- 1 file changed, 159 insertions(+), 92 deletions(-) diff --git a/sql/CREATE-BD.sql b/sql/CREATE-BD.sql index 8234663..2bfcb4f 100644 --- a/sql/CREATE-BD.sql +++ b/sql/CREATE-BD.sql @@ -1,156 +1,223 @@ -- Tabela Personagem CREATE TABLE Personagem ( - idPersonagem INT NOT NULL PRIMARY KEY AUTO_INCREMENT, - Alma INT NOT NULL DEFAULT 0, - Local INT DEFAULT 0, - TipoP INT NOT NULL DEFAULT 0 + idPersonagem INT PRIMARY KEY AUTO_INCREMENT, + alma INT DEFAULT 0, + local INT UNIQUE, + tipoP INT NOT NULL +); + +-- Tabela Loot +CREATE TABLE Loot ( + FOREIGN KEY (local) REFERENCES Local (idLocal), + FOREIGN KEY (item) REFERENCES Item (idItem) +); + +-- Tabela Coletadas +CREATE TABLE Coletadas ( + FOREIGN KEY (personagem) REFERENCES PersonagemJogavel (idPersonagem), + FOREIGN KEY (alma) REFERENCES Alma (nome), ); -- Tabela Ataque CREATE TABLE Ataque ( - idAtaque INT NOT NULL PRIMARY KEY AUTO_INCREMENT, - tipoAtaque INT NOT NULL DEFAULT 0, - descricao VARCHAR(255) NOT NULL, - idHabilidade INT NOT NULL, - danoFisico INT NOT NULL DEFAULT 0, - danoMagico INT NOT NULL DEFAULT 0 + idAtaque INT PRIMARY KEY AUTO_INCREMENT, + tipoAtaque INT NOT NULL, + descrição VARCHAR(255) DEFAULT '', + FOREIGN KEY(idHabilidade) REFERENCES Habilidade (idHabilidade), + danoFisico INT DEFAULT 0, + danoMagico INT DEFAULT 0 ); -- Tabela Item CREATE TABLE Item ( - idItem INT NOT NULL PRIMARY KEY AUTO_INCREMENT, - idInventario INT NOT NULL, - lojista INT NOT NULL, - tipo VARCHAR(255) NOT NULL DEFAULT '' -); + idItem INT PRIMARY KEY AUTO_INCREMENT, + tipo VARCHAR(255) NOT NULL, + FOREIGN KEY(idInventario) REFERENCES Inventario (idInventario), + FOREIGN KEY(lojista) REFERENCES Lojista (idLojista) -- Tabela Armadura CREATE TABLE Armadura ( - idItem INT NOT NULL PRIMARY KEY, - defesa INT NOT NULL DEFAULT 0, - defesaMagica INT NOT NULL DEFAULT 0, - agilidade INT NOT NULL DEFAULT 0, - descricao VARCHAR(255) NOT NULL, - valor INT NOT NULL DEFAULT 0, - nome VARCHAR(255) NOT NULL, - FOREIGN KEY (idItem) REFERENCES Item (idItem) ON DELETE CASCADE + FOREIGN KEY (idItem) REFERENCES Item (idItem), + defesa INT DEFAULT 0, + defesaMagica INT DEFAULT 0, + agilidade INT DEFAULT 0, + descrição VARCHAR(255) DEFAULT '', + valor INT DEFAULT 0, + nome VARCHAR(255) NOT NULL +); + +-- Tabela Local +CREATE TABLE Local ( + idLocal PRIMARY KEY AUTO_INCREMENT ); +-- Tabela Estoque +CREATE TABLE Estoque ( + FOREIGN KEY (idLojista) REFERENCES Lojista (idLojista), + FOREIGN KEY (idItem) REFERENCES Item (idItem) +); + + -- Tabela Arma CREATE TABLE Arma ( - idItem INT NOT NULL PRIMARY KEY, - ataqueFisico INT NOT NULL DEFAULT 0, - ataqueMagico INT NOT NULL DEFAULT 0, - descricao VARCHAR(255) NOT NULL, - valor INT NOT NULL DEFAULT 0, - nome VARCHAR(255) NOT NULL, - FOREIGN KEY (idItem) REFERENCES Item (idItem) ON DELETE CASCADE -); + FOREIGN KEY (idItem) REFERENCES Item (idItem), + ataqueFisico INT DEFAULT 0, + ataqueMagico INT DEFAULT 0, + descrição VARCHAR(255) DEFAULT '', + valor INT DEFAULT 0, + nome VARCHAR(255) NOT NULL + ); -- Tabela Acessorio CREATE TABLE Acessorio ( - idItem INT NOT NULL PRIMARY KEY, - defesa INT NOT NULL DEFAULT 0, - defesaMagica INT NOT NULL DEFAULT 0, - agilidade INT NOT NULL DEFAULT 0, - ataqueFisico INT NOT NULL DEFAULT 0, - ataqueMagico INT NOT NULL DEFAULT 0, - descricao VARCHAR(255) NOT NULL, - valor INT NOT NULL DEFAULT 0, - nome VARCHAR(255) NOT NULL, - FOREIGN KEY (idItem) REFERENCES Item (idItem) ON DELETE CASCADE + FOREIGN KEY (idItem) REFERENCES Item (idItem), + defesa INT DEFAULT 0, + defesaMagica INT DEFAULT 0, + agilidade INT DEFAULT 0, + ataqueFisico INT DEFAULT 0, + ataqueMagico INT DEFAULT 0, + descrição VARCHAR(255) DEFAULT '', + valor INT DEFAULT 0, + nome VARCHAR(255) NOT NULL ); -- Tabela Lojista CREATE TABLE Lojista ( - idLojista INT NOT NULL PRIMARY KEY AUTO_INCREMENT, - idInventario INT NOT NULL, + idLojista INT PRIMARY KEY AUTO_INCREMENT, + FOREIGN KEY (idInventario) REFERENCES Inventario (idInventario) + agilidade INT DEFAULT 0, + defesaMagica INT DEFAULT 0, + defesa INT DEFAULT 0, + ataque INT DEFAULT 0, nome VARCHAR(255) NOT NULL ); -- Tabela Personagem Não Jogável CREATE TABLE PNJ ( - idPnj INT NOT NULL PRIMARY KEY AUTO_INCREMENT, - idPersonagem INT NOT NULL, - nome VARCHAR(255) NOT NULL, - FOREIGN KEY (idPersonagem) REFERENCES Personagem (idPersonagem) ON DELETE CASCADE + FOREIGN KEY (idPersonagem) REFERENCES Personagem (idPersonagem), + tipoPnj NOT NULL ); -- Tabela Inimigo CREATE TABLE Inimigo ( - idPersonagem INT NOT NULL PRIMARY KEY AUTO_INCREMENT, - nome VARCHAR(255) NOT NULL, - ataque INT DEFAULT 0, - defesa INT DEFAULT 0, - defesaMagica INT DEFAULT 0, + idPersonagem INT PRIMARY KEY AUTO_INCREMENT, + defesa INT DEFAULT 0, agilidade INT DEFAULT 0, - alma INT DEFAULT 0, - tipo INT DEFAULT 0 + ataque INT DEFAULT 0, + nome VARCHAR(255) NOT NULL, + defesaMagica INT DEFAULT 0 ); -- Tabela Legivel CREATE TABLE Legivel ( - idItem INT NOT NULL PRIMARY KEY AUTO_INCREMENT, - nome VARCHAR(255) NOT NULL, - descrição VARCHAR(255) DEFAULT '', + idItem INT PRIMARY KEY AUTO_INCREMENT, conteúdo VARCHAR(255) DEFAULT '', - efeito VARCHAR(255) DEFAULT '', - valor INT DEFAULT 0 + valor INT DEFAULT 0, + descrição VARCHAR(255) DEFAULT '', + nome VARCHAR(255) NOT NULL ); -- Tabela Consumivel CREATE TABLE Consumivel ( - idItem INT NOT NULL PRIMARY KEY AUTO_INCREMENT, - nome VARCHAR(255) NOT NULL, + idItem INT PRIMARY KEY AUTO_INCREMENT, + adHp INT NOT NULL, + adMente INT NOT NULL, descrição VARCHAR(255) DEFAULT '', - efeito VARCHAR(255) DEFAULT '', - valor INT DEFAULT 0 -); - --- Tabela Parte -CREATE TABLE Parte ( - idParte INT NOT NULL PRIMARY KEY AUTO_INCREMENT, - nome VARCHAR(255) NOT NULL, - tipo VARCHAR(255) DEFAULT 'Braço', - idPersonagem INT NOT NULL, - vidaMaxima INT DEFAULT 0, - chanceAcerto INT DEFAULT 0, - vidaAtual INT DEFAULT 0 + valor INT DEFAULT 0, + nome VARCHAR(255) NOT NULL ); -- Tabela Inventario CREATE TABLE Inventario ( - idInventario INT NOT NULL PRIMARY KEY, - idPersonagem INT NOT NULL + idInventario INT PRIMARY KEY AUTO_INCREMENT, + FOREIGN KEY (idPersonagem) REFERENCES Personagem (idPersonagem) ); -- Tabela Alma CREATE TABLE Alma ( nome VARCHAR(255) PRIMARY KEY, - personagem INT NOT NULL, - FOREIGN KEY (Personagem) REFERENCES Personagem (idPersonagem) ON DELETE CASCADE + FOREIGN KEY (personagem) REFERENCES Personagem (idPersonagem) ); -- Tabela Personagem Jogável CREATE TABLE PersonagemJogavel ( - acessorio1 INT, - acessorio2 INT, - arma INT, - armadura INT, - mente INT NOT NULL, corpo INT NOT NULL, - idPersonagem INT NOT NULL, - FOREIGN KEY (Acessorio1) REFERENCES Acessorio (idItem), - FOREIGN KEY (Acessorio2) REFERENCES Acessorio (idItem), - FOREIGN KEY (Arma) REFERENCES Arma (idItem), - FOREIGN KEY (Armadura) REFERENCES Armadura (idItem), - FOREIGN KEY (idPersonagem) REFERENCES Personagem (idPersonagem) + mente INT NOT NULL, + defesa INT NOT NULL, + agilidade INT NOT NULL, + ataque INT NOT NULL, + nome VARCHAR(255) NOT NULL, + defesaMagica INT NOT NULL, + FOREIGN KEY (idPersonagem) REFERENCES Personagem (idPersonagem), + FOREIGN KEY (acessorio1) REFERENCES Item (idItem), + FOREIGN KEY (acessorio2) REFERENCES Item (idItem), + FOREIGN KEY (Arma) REFERENCES Item (idItem), + FOREIGN KEY (Armadura) REFERENCES Item (idItem) ); -- Tabela Habilidade CREATE TABLE Habilidade ( - idHabilidade INT NOT NULL PRIMARY KEY AUTO_INCREMENT, - custo INT NOT NULL DEFAULT 0, - alma INT NOT NULL, + idHabilidade INT PRIMARY KEY AUTO_INCREMENT, + custo INT NOT NULL, FOREIGN KEY (alma) REFERENCES Alma (Nome) ); + +-- Tabela Genital +CREATE TABLE Genital ( + idParte INT PRIMARY KEY, + FOREIGN KEY (Personagem) REFERENCES Personagem (idPersonagem), + tipoParte INT UNIQUE, + hpMaximo INT NOT NULL, + hitChance INT NOT NULL, + hpAtual INT NOT NULL +); + +-- Tabela Cabeca +CREATE TABLE Cabeca ( + idParte INT PRIMARY KEY, + FOREIGN KEY (Personagem) REFERENCES Personagem (idPersonagem), + tipoParte INT UNIQUE, + hpMaximo INT NOT NULL, + hitChance INT NOT NULL, + hpAtual INT NOT NULL +); + +-- Tabela Olho +CREATE TABLE Olho ( + idParte INT PRIMARY KEY, + FOREIGN KEY (Personagem) REFERENCES Personagem (idPersonagem), + tipoParte INT UNIQUE, + hpMaximo INT NOT NULL, + hitChance INT NOT NULL, + hpAtual INT NOT NULL +); + +-- Tabela Braco +CREATE TABLE Braco ( + idParte INT PRIMARY KEY, + FOREIGN KEY (Personagem) REFERENCES Personagem (idPersonagem), + tipoParte INT UNIQUE, + hpMaximo INT NOT NULL, + hitChance INT NOT NULL, + hpAtual INT NOT NULL +); + +-- Tabela Torco +CREATE TABLE Torco ( + idParte INT PRIMARY KEY, + FOREIGN KEY (Personagem) REFERENCES Personagem (idPersonagem), + tipoParte INT UNIQUE, + hpMaximo INT NOT NULL, + hitChance INT NOT NULL, + hpAtual INT NOT NULL +); + +-- Tabela Perna +CREATE TABLE Perna ( + idParte INT PRIMARY KEY, + FOREIGN KEY (Personagem) REFERENCES Personagem (idPersonagem), + tipoParte INT UNIQUE, + hpMaximo INT NOT NULL, + hitChance INT NOT NULL, + hpAtual INT NOT NULL +);