Advertisement
felipesouza_nh

Untitled

Feb 1st, 2015
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.56 KB | None | 0 0
  1. /* Este arquivo fornece os códigos para a criação do SCHEMA e TABLES que iremos utilizar */
  2. -- Schema: teste
  3. -- DROP SCHEMA teste;
  4.  
  5. CREATE SCHEMA teste;
  6.  
  7. -- Usuário (email, nome, senha, sexo, dataNascimento)
  8.  
  9. CREATE TABLE teste.usuario(
  10.     email VARCHAR(40) NOT NULL,
  11.     nome VARCHAR(50) NOT NULL,
  12.     senha VARCHAR(15) NOT NULL,
  13.     sexo VARCHAR(10),
  14.     data_nasc DATE NOT NULL,
  15.     img VARCHAR(40),
  16.     CONSTRAINT usuario_pkey PRIMARY KEY(email)
  17. );
  18.  
  19. -- Foto (id, legenda, url)
  20.  
  21. CREATE TABLE teste.foto(
  22.     email VARCHAR(40) NOT NULL,
  23.     idFoto INT NOT NULL,
  24.     legenda VARCHAR(40) NULL,
  25.     url VARCHAR(40) NOT NULL,
  26.     CONSTRAINT foto_key PRIMARY KEY(idFoto),
  27.     FOREIGN KEY(email) REFERENCES teste.usuario(email) ON DELETE CASCADE
  28. );
  29.  
  30.  
  31. -- Mensagem (id, mensagem)
  32.  
  33. CREATE TABLE teste.mensagem(
  34.     remetente VARCHAR(40) NOT NULL,
  35.     destinatario VARCHAR (40) NOT NULL,
  36.     idMensagem INT NOT NULL,
  37.     mensagem VARCHAR(255) NOT NULL,
  38.     CONSTRAINT mensagem_key PRIMARY KEY(idMensagem),
  39.     FOREIGN KEY(remetente) REFERENCES teste.usuario(email) ON DELETE CASCADE,
  40.     FOREIGN KEY(destinatario) REFERENCES teste.usuario(email) ON DELETE CASCADE
  41. );
  42.  
  43. -- Álbum (id, título, descrição, dataAtualização)
  44.  
  45. CREATE TABLE teste.album(
  46.     idAlbum INT NOT NULL,
  47.     email VARCHAR(40) NOT NULL,
  48.     título VARCHAR(40) NOT NULL,
  49.     descricao VARCHAR(80) NULL,
  50.     data_Atualizacao DATE NOT NULL,
  51.     CONSTRAINT album_key PRIMARY KEY(idAlbum),
  52.     FOREIGN KEY(email) REFERENCES teste.usuario(email) ON DELETE CASCADE
  53. );
  54.  
  55. -- Post (idPost, emailUsuario, dataPost, idFoto, idMensagem, idAlbum)
  56.  
  57.  
  58. CREATE TABLE teste.post(
  59.     idPost INT NOT NULL,
  60.     email VARCHAR(40) NOT NULL,
  61.     dataPost DATE NOT NULL,
  62.     conteudo VARCHAR(150) NOT NULL,
  63.     idFoto INT,
  64.     idAlbum INT,
  65.     CONSTRAINT post_key PRIMARY KEY(idPost),
  66.     FOREIGN KEY(email) REFERENCES teste.usuario(email) ON DELETE CASCADE,
  67.     FOREIGN KEY(idFoto) REFERENCES teste.foto(idFoto) ON DELETE CASCADE,
  68.     FOREIGN KEY(idAlbum) REFERENCES teste.album(idAlbum) ON DELETE CASCADE
  69. );
  70.  
  71. -- Marcação (idPost, idUsuário)
  72.  
  73. CREATE TABLE teste.marcacao(
  74.     idPost INT NOT NULL,
  75.     email VARCHAR(40) NOT NULL,
  76.     marcado VARCHAR(40) NOT NULL,
  77.     FOREIGN KEY(idPost) REFERENCES teste.post(idPost) ON DELETE CASCADE,
  78.     FOREIGN KEY(email) REFERENCES teste.usuario(email) ON DELETE CASCADE,
  79.     FOREIGN KEY(marcado) REFERENCES teste.usuario(email) ON DELETE CASCADE
  80. );
  81.  
  82.  
  83. -- DadosDeNavegação (id, idPost, emailUsuário, ação)
  84.  
  85. CREATE TABLE teste.dadosDeNavegacao(
  86.     idDadosDeNavegacao INT NOT NULL,
  87.     idPost INT NOT NULL,
  88.     email VARCHAR(40),
  89.     acao VARCHAR(20) NOT NULL,
  90.     CONSTRAINT dadosDeNavegacao_key PRIMARY KEY(idDadosDeNavegacao),
  91.     FOREIGN KEY(idPost) REFERENCES teste.post(idPost) ON DELETE CASCADE,
  92.     FOREIGN KEY(email) REFERENCES teste.usuario(email) ON DELETE CASCADE
  93. );
  94.  
  95. -- Página(id, título)
  96.  
  97. CREATE TABLE teste.pagina(
  98.     idPagina INT NOT NULL,
  99.     titulo VARCHAR(40) NOT NULL,
  100.     img VARCHAR(40),
  101.     proprietario VARCHAR(40) NOT NULL,
  102.     CONSTRAINT pagina_key PRIMARY KEY(idPagina),
  103.     FOREIGN KEY(proprietario) REFERENCES teste.usuario(email) ON DELETE CASCADE
  104. );
  105.  
  106. -- Grupo(id, título)
  107.  
  108. CREATE TABLE teste.grupo(
  109.     idGrupo INT NOT NULL,
  110.     titulo VARCHAR(40) NOT NULL,
  111.     img VARCHAR(40),
  112.     adm VARCHAR(40) NOT NULL,
  113.     CONSTRAINT grupo_key PRIMARY KEY(idGrupo),
  114.     FOREIGN KEY(adm) REFERENCES teste.usuario(email) ON DELETE CASCADE
  115. );
  116.  
  117.  
  118. -- Curtida (id, emailUsuário, dataCurtida)
  119.  
  120. CREATE TABLE teste.curtida(
  121.     idCurtida INT NOT NULL,
  122.     email VARCHAR(40) NOT NULL,
  123.     CONSTRAINT curtida_key PRIMARY KEY(idCurtida),
  124.     FOREIGN KEY(email) REFERENCES teste.usuario(email) ON DELETE CASCADE
  125. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement