Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Este arquivo fornece os códigos para a criação do SCHEMA e TABLES que iremos utilizar */
- -- Schema: teste
- -- DROP SCHEMA teste;
- CREATE SCHEMA teste;
- -- Usuário (email, nome, senha, sexo, dataNascimento)
- CREATE TABLE teste.usuario(
- email VARCHAR(40) NOT NULL,
- nome VARCHAR(50) NOT NULL,
- senha VARCHAR(15) NOT NULL,
- sexo VARCHAR(10),
- data_nasc DATE NOT NULL,
- img VARCHAR(40),
- CONSTRAINT usuario_pkey PRIMARY KEY(email)
- );
- -- Foto (id, legenda, url)
- CREATE TABLE teste.foto(
- email VARCHAR(40) NOT NULL,
- idFoto INT NOT NULL,
- legenda VARCHAR(40) NULL,
- url VARCHAR(40) NOT NULL,
- CONSTRAINT foto_key PRIMARY KEY(idFoto),
- FOREIGN KEY(email) REFERENCES teste.usuario(email) ON DELETE CASCADE
- );
- -- Mensagem (id, mensagem)
- CREATE TABLE teste.mensagem(
- remetente VARCHAR(40) NOT NULL,
- destinatario VARCHAR (40) NOT NULL,
- idMensagem INT NOT NULL,
- mensagem VARCHAR(255) NOT NULL,
- CONSTRAINT mensagem_key PRIMARY KEY(idMensagem),
- FOREIGN KEY(remetente) REFERENCES teste.usuario(email) ON DELETE CASCADE,
- FOREIGN KEY(destinatario) REFERENCES teste.usuario(email) ON DELETE CASCADE
- );
- -- Álbum (id, título, descrição, dataAtualização)
- CREATE TABLE teste.album(
- idAlbum INT NOT NULL,
- email VARCHAR(40) NOT NULL,
- título VARCHAR(40) NOT NULL,
- descricao VARCHAR(80) NULL,
- data_Atualizacao DATE NOT NULL,
- CONSTRAINT album_key PRIMARY KEY(idAlbum),
- FOREIGN KEY(email) REFERENCES teste.usuario(email) ON DELETE CASCADE
- );
- -- Post (idPost, emailUsuario, dataPost, idFoto, idMensagem, idAlbum)
- CREATE TABLE teste.post(
- idPost INT NOT NULL,
- email VARCHAR(40) NOT NULL,
- dataPost DATE NOT NULL,
- conteudo VARCHAR(150) NOT NULL,
- idFoto INT,
- idAlbum INT,
- CONSTRAINT post_key PRIMARY KEY(idPost),
- FOREIGN KEY(email) REFERENCES teste.usuario(email) ON DELETE CASCADE,
- FOREIGN KEY(idFoto) REFERENCES teste.foto(idFoto) ON DELETE CASCADE,
- FOREIGN KEY(idAlbum) REFERENCES teste.album(idAlbum) ON DELETE CASCADE
- );
- -- Marcação (idPost, idUsuário)
- CREATE TABLE teste.marcacao(
- idPost INT NOT NULL,
- email VARCHAR(40) NOT NULL,
- marcado VARCHAR(40) NOT NULL,
- FOREIGN KEY(idPost) REFERENCES teste.post(idPost) ON DELETE CASCADE,
- FOREIGN KEY(email) REFERENCES teste.usuario(email) ON DELETE CASCADE,
- FOREIGN KEY(marcado) REFERENCES teste.usuario(email) ON DELETE CASCADE
- );
- -- DadosDeNavegação (id, idPost, emailUsuário, ação)
- CREATE TABLE teste.dadosDeNavegacao(
- idDadosDeNavegacao INT NOT NULL,
- idPost INT NOT NULL,
- email VARCHAR(40),
- acao VARCHAR(20) NOT NULL,
- CONSTRAINT dadosDeNavegacao_key PRIMARY KEY(idDadosDeNavegacao),
- FOREIGN KEY(idPost) REFERENCES teste.post(idPost) ON DELETE CASCADE,
- FOREIGN KEY(email) REFERENCES teste.usuario(email) ON DELETE CASCADE
- );
- -- Página(id, título)
- CREATE TABLE teste.pagina(
- idPagina INT NOT NULL,
- titulo VARCHAR(40) NOT NULL,
- img VARCHAR(40),
- proprietario VARCHAR(40) NOT NULL,
- CONSTRAINT pagina_key PRIMARY KEY(idPagina),
- FOREIGN KEY(proprietario) REFERENCES teste.usuario(email) ON DELETE CASCADE
- );
- -- Grupo(id, título)
- CREATE TABLE teste.grupo(
- idGrupo INT NOT NULL,
- titulo VARCHAR(40) NOT NULL,
- img VARCHAR(40),
- adm VARCHAR(40) NOT NULL,
- CONSTRAINT grupo_key PRIMARY KEY(idGrupo),
- FOREIGN KEY(adm) REFERENCES teste.usuario(email) ON DELETE CASCADE
- );
- -- Curtida (id, emailUsuário, dataCurtida)
- CREATE TABLE teste.curtida(
- idCurtida INT NOT NULL,
- email VARCHAR(40) NOT NULL,
- CONSTRAINT curtida_key PRIMARY KEY(idCurtida),
- FOREIGN KEY(email) REFERENCES teste.usuario(email) ON DELETE CASCADE
- );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement