Created
March 5, 2009 03:12
-
-
Save antoniopassos/74161 to your computer and use it in GitHub Desktop.
Script para criação do banco de dados do aplicativo JPratosProntos
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DROP TABLE IF EXISTS pessoa; | |
DROP TABLE IF EXISTS email; | |
DROP TABLE IF EXISTS endereco; | |
DROP TABLE IF EXISTS telefone; | |
DROP TABLE IF EXISTS pessoafisica; | |
DROP TABLE IF EXISTS cliente; | |
DROP TABLE IF EXISTS funcionario; | |
DROP TABLE IF EXISTS pessoajuridica; | |
DROP TABLE IF EXISTS pedido; | |
DROP TABLE IF EXISTS item_pedido; | |
DROP TABLE IF EXISTS prato; | |
DROP TABLE IF EXISTS prato_pessoajuridica; | |
CREATE TABLE pessoa | |
( | |
idpessoa BIGINT NOT NULL, | |
nome VARCHAR(45) NOT NULL, | |
constraint pk_Pessoa PRIMARY KEY(idpessoa) | |
); | |
CREATE TABLE email | |
( | |
pessoa_idpessoa BIGINT NOT NULL, | |
tipo TINYINT NOT NULL, | |
email VARCHAR(60) NOT NULL, | |
constraint pk_Email PRIMARY KEY(pessoa_idpessoa), | |
constraint fk_Email_pk_Pessoa FOREIGN KEY (pessoa_idpessoa) | |
REFERENCES pessoa | |
ON DELETE CASCADE | |
ON UPDATE CASCADE | |
); | |
CREATE TABLE endereco | |
( | |
pessoa_idpessoa BIGINT NOT NULL, | |
tipo TINYINT NOT NULL, | |
endereco VARCHAR(50) NOT NULL, | |
bairro VARCHAR(25) NULL, | |
cep INT NULL, | |
cidade VARCHAR(25) NULL, | |
estado VARCHAR(25) NULL, | |
constraint pk_Endereco PRIMARY KEY(pessoa_idpessoa), | |
constraint fk_Endereco_pk_Pessoa FOREIGN KEY (pessoa_idpessoa) | |
REFERENCES pessoa (idpessoa) | |
ON DELETE CASCADE | |
ON UPDATE CASCADE | |
); | |
CREATE TABLE telefone | |
( | |
pessoa_idpessoa BIGINT NOT NULL, | |
tipo TINYINT NOT NULL, | |
codigodacidade TINYINT NOT NULL, | |
numero INT NOT NULL, | |
constraint pk_Telefone PRIMARY KEY(pessoa_idpessoa), | |
constraint fk_Telefone_pk_Pessoa FOREIGN KEY (pessoa_idpessoa) | |
REFERENCES pessoa (idpessoa) | |
ON DELETE CASCADE | |
ON UPDATE CASCADE | |
); | |
CREATE TABLE pessoafisica | |
( | |
sexo TINYINT NULL, | |
cpf INT NULL, | |
datanascimento DATE NULL, | |
pessoa_idpessoa BIGINT NOT NULL, | |
constraint pk_PessoaFisica PRIMARY KEY(pessoa_idpessoa), | |
constraint fk_PessoaFisica_pk_Pessoa FOREIGN KEY (pessoa_idpessoa) | |
REFERENCES pessoa (idpessoa) | |
ON DELETE CASCADE | |
ON UPDATE CASCADE | |
); | |
CREATE TABLE pessoajuridica | |
( | |
cnpj INT NOT NULL , | |
nomefantasia VARCHAR(45) NULL, | |
pessoa_idpessoa BIGINT NOT NULL, | |
constraint pk_PessoaJuridica PRIMARY KEY(pessoa_idpessoa), | |
constraint fk_PessoaJuridica_pk_Pessoa FOREIGN KEY (pessoa_idpessoa) | |
REFERENCES pessoa (idpessoa) | |
ON DELETE CASCADE | |
ON UPDATE CASCADE | |
); | |
CREATE TABLE cliente | |
( | |
tipo TINYINT NOT NULL, | |
pf_pessoa_idpessoa BIGINT NOT NULL, | |
constraint pk_Cliente PRIMARY KEY(pf_pessoa_idpessoa), | |
constraint fk_Cliente_pk_PessoaFisica FOREIGN KEY (pf_pessoa_idpessoa) | |
REFERENCES pessoafisica (pessoa_idpessoa) | |
ON DELETE CASCADE | |
ON UPDATE CASCADE | |
); | |
CREATE TABLE funcionario | |
( | |
matricula INT NOT NULL, | |
cargo VARCHAR(30) NULL, | |
dataadmissao DATE NULL, | |
pf_pessoa_idpessoa BIGINT NOT NULL, | |
constraint pk_Funcionario PRIMARY KEY(pf_pessoa_idpessoa), | |
constraint fk_Funcionario_pk_PessoaFisica FOREIGN KEY (pf_pessoa_idpessoa) | |
REFERENCES pessoafisica (pessoa_idpessoa) | |
ON DELETE CASCADE | |
ON UPDATE CASCADE | |
); | |
CREATE TABLE pedido | |
( | |
idpedido BIGINT NOT NULL, | |
data DATE NULL, | |
hora TIME NULL, | |
formapagamento TINYINT NULL, | |
funci_pf_pessoa_idpessoa BIGINT NULL, | |
cli_pf_pessoa_idpessoa BIGINT NULL, | |
constraint pk_Pedido PRIMARY KEY(idpedido), | |
constraint fk_Pedido_pk_Funcionario FOREIGN KEY (funci_pf_pessoa_idpessoa) | |
REFERENCES funcionario (pf_pessoa_idpessoa) | |
ON DELETE NO ACTION | |
ON UPDATE NO ACTION, | |
constraint fk_Pedido_pk_Cliente FOREIGN KEY (cli_pf_pessoa_idpessoa) | |
REFERENCES cliente (pf_pessoa_idpessoa) | |
ON DELETE NO ACTION | |
ON UPDATE NO ACTION | |
); | |
CREATE TABLE prato | |
( | |
idprato BIGINT NOT NULL, | |
nome VARCHAR(25) NOT NULL, | |
descricao VARCHAR(256) NULL, | |
preco DECIMAL(6,2) NULL, | |
constraint pk_Prato PRIMARY KEY(idprato) | |
); | |
CREATE TABLE item_pedido | |
( | |
quantidade TINYINT NOT NULL , | |
prato_idprato BIGINT NOT NULL , | |
pedido_idpedido BIGINT NULL , | |
constraint pk_ItemPedido PRIMARY KEY(prato_idprato, pedido_idpedido), | |
constraint fk_Item_Pedido_pk_Prato FOREIGN KEY (prato_idprato) | |
REFERENCES prato (idprato) | |
ON UPDATE CASCADE, | |
constraint fk_Item_Pedido_pk_Pedido FOREIGN KEY (pedido_idpedido) | |
REFERENCES pedido (idpedido) | |
ON DELETE CASCADE | |
ON UPDATE CASCADE | |
); | |
CREATE TABLE prato_pessoajuridica | |
( | |
prato_idprato BIGINT NOT NULL, | |
pj_pessoa_idpessoa BIGINT NOT NULL, | |
constraint pk_PratoPessoaJuridica PRIMARY KEY(prato_idprato, pj_pessoa_idpessoa), | |
constraint fk_PratoPessoaJuridica_pk_Prato FOREIGN KEY (prato_idprato) | |
REFERENCES prato (idprato) | |
ON UPDATE CASCADE, | |
constraint fk_PratoPessoaJuridica_pk_PessoaJuridica FOREIGN KEY (pj_pessoa_idpessoa) | |
REFERENCES pessoajuridica (pessoa_idpessoa) | |
ON UPDATE CASCADE | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment