Ir para conteúdo
  • ×   Você colou conteúdo com formatação.   Remover formatação

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

  • Conteúdo Similar

    • Por andreygsantos
      Pessoal, normalmente faço modelagem de banco de dados usando o CA ErWin, mas precisei utilizar a ferramenta de modelagem do MySQL Workbench 8.0 Community.
      O problema ocorre quando a ferramenta começa a "enfeitar o pavão" quando se trata de FK. Vou mostrar um exemplo básico:

      Temos aqui 3 tabelas representando condomínio, unidades e vagas. As vagas pertencem ao condomínio, assim como as unidades. As vagas podem pertencer a unidades diferentes no decorrer do tempo porque não são vagas fixas, portanto não posso pendurar vaga na unidade.
      Problema 1: FK recebe o nome da tabela origem automaticamente.
      Até aqui posso renomear o atributo ou alterar as configurações de modelagem.
       

      Atributos renomeados, temos o seguinte modelo representado acima. Agora vamos levar a PK da entidade UNIDADE para ser FK não identificação na entidade VAGA.
       

      E agora temos o Problema 2: a ferramenta não entende que o atributo CondomínioID já existe e cria novamente com o prefixo da entidade origem. Parece um problema besta e fácil de resolver apagando o atributo duplicado e mantendo apenas UnidadeID, mas ao sincronizar com o banco de dados, começam a surgir erros com índices.
      Abaixo mostro como fica a modelagem no ERWin sem qualquer interferência:
       

      Como podem ver, a modelagem fica perfeita. O ErWin entende que o atributo já existe na entidade e leva apenas o atributo que vai diferenciar para fazer o relacionamento.
       
      Vocês devem estar se perguntando por que eu não uso o ErWin então... Mas a versão do ErWin que tenho não suporta MySQL após a versão 5.x e uma licença nova dessa ferramenta vai me custar 1 rim, senão os 2... Teoricamente, o Workbench deveria fazer essa modelagem sem problemas, mas eu não conheço bem e talvez possa ser alguma configuração. Alguém teria uma luz?
      Obrigado.
       
    • Por phfmiranda
      Bom dia,
       
      Tenho um BD com 3 tabelas
       
      tb_cliente - Chave primaria id_cliente
      tb_dados - chave estrangeira id_cliente
      tb_crediario - chave estrangeira id_cliente
       
      O que acontece é que como já temos dados nas mesmas não estou conseguindo criar a chave estrangeira abaixo, tem alguma ideia de como criar a mesma sem alterar os dados??
       
      ALTER TABLE `tb_dados` ADD FOREIGN KEY (`id_cliente`) REFERENCES `tb_cliente`(`id_cliente`) ON DELETE CASCADE  
      Obrigado.
    • Por Hamilcar
      Bom dia a todos!
      Estou tentando fazer uma base de dados onde tenho 3 tabelas, usuario, requerimento e escala. Onde um usuario faz um requerimento e deste requerimento geraria uma escala.
      Gostaria de preparar a base de dados para que quando cadastrar um requerimento, esse requerimento só seja incluído se houver um usuario ligado a este requerimento, e quando cadastrar uma escala, esta seja ligada ao requerimento que a gerou, e quando for editar ou excluir, não exclua um requerimento sem excluir a escala.
      Tentei aqui um modelo com chave estrangeira, mas quando incluo um requerimento que não esteja vinculado a um usuario, dá um "warning" e inclue assim mesmo, e para excluir também faz da mesma forma. abaixo as tabelas.
       
      CREATE TABLE `usuario` (
        `nome_usuario` varchar(100) DEFAULT NULL,
        `id_usuario` int(11) NOT NULL,
        `telefone_usuario` varchar(20) DEFAULT NULL,
        `data_cadastro_usuario` datetime DEFAULT NULL,
      ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
       
      CREATE TABLE `requerimento` (
        `id_requerimento` int(11) NOT NULL,
        `data_requerimento` datetime NOT NULL,
        `status_requerimento` enum('0','1') NOT NULL DEFAULT '0',
        `id_usuario` int(11) NOT NULL
      ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
       
      CREATE TABLE `escala` (
        `id_escala` int(11) NOT NULL,
        `local_escala` varchar(100) NOT NULL,
        `horário_escala` varchar(100) NOT NULL,
        `data_escala` date NOT NULL,
        `id_requerimento` int(11) NOT NULL
      ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
       
      --
      -- Índices para tabela `escala`
      --
      ALTER TABLE `escala`
        ADD PRIMARY KEY (`id_escala`),
        ADD KEY `fk_requerimento_escala` (`id_requerimento`);
      --
      -- Índices para tabela `requerimento`
      --
      ALTER TABLE `requerimento`
        ADD PRIMARY KEY (`id_requerimento`),
        ADD KEY `fk_usuario_requerimento` (`id_usuario`);
      --
      -- Índices para tabela `usuarios`
      --
      ALTER TABLE `usuario`
        ADD PRIMARY KEY (`id_usuario`);
      COMMIT;
    • Por Ak_Ray
      Olá pessoal, estou com um problema relativamente simples! mas sou novo em banco de dados e php então não consegui resolver. Estou construindo um sistema de registro e login há um certo tempo, meu professor ainda não ensinou e não ensina muito bem então decidi aprender sozinho por tutoriais na internet ._. então achei um tutorial legal, segui todos os passos e está tudo funcionando! porém, agora quero exibir os dados registrados, porém não sei como fazer isso, quero exibir em específico o nome do usuário. Lembrando que sou novo nesse assunto então desconsiderem minha maneira de programar kkk
       
      ================================================================================================================================
      Código php:
      <?php
      class Usuario
      {
          private $pdo;
          public $msgErro = "";
          public function conectar($nome, $host, $usuario, $senha)
          {
              global $pdo;
              global $msgErro;
              try {
              $pdo = new PDO("mysql:dbname=".$nome.";host=".$host,$usuario,$senha);    
              } catch (PDOException $e) {
                  $msgErro = $e->getMessage(); 
              }
          return $conectar;    
          }
          public function cadastrar($nome, $telefone, $email, $senha)
          {
              global $pdo;
              //verificar se já existe email cadastrado 
              $sql = $pdo->prepare("SELECT id_usuario from usuarios where email = :e");
              $sql->bindValue(":e",$email);
              $sql->execute();
              if($sql->rowCount() > 0)
              {
                  return false; // ja esta cadastrado
              }
              else 
              {
                   //caso não, cadastrar 
                   $sql = $pdo->prepare("INSERT INTO usuarios (nome,telefone,email,senha) VALUES (:n, :t, :e, :s)");
                   $sql->bindValue(":n",$nome);
                   $sql->bindValue(":t",$telefone);
                   $sql->bindValue(":e",$email);
                   $sql->bindValue(":s",md5($senha));
                   $sql->execute();
                   return true; 
              }     
              
          }
          public function logar($email, $senha)
          {
              global $pdo;
              //verificar se  o email e senha estao cadastrados, se sim  
              $sql = $pdo->prepare("SELECT id_usuario from usuarios where email = :e and senha = :s");
              $sql->bindValue(":e",$email);
              $sql->bindValue(":s",md5($senha));
              $sql->execute();
              if($sql->rowCount() > 0)
              {
                 //entrar no sistema (sessao)
                 $dado = $sql->fetch();
                 session_start();
                 $_SESSION['id_usuario'] = $dado['id_usuario'];
                 return true; //logado com sucesso 
              }
              else
              {
                 return false;//nao foi possível logar
              }
              //entrar no sistema (sessao)
          }
      }
      ?>
       
      ================================================================================================================================
      Código html:
      <!-- verificação se está logado -->
      <?php 
      session_start(); 
      if(!isset($_SESSION['id_usuario']))

      header("location: index.php"); 
      exit; 
      }
      else{    
          include ('CLASSES/usuarios.php');
          require_once 'CLASSES/usuarios.php';
          $consulta = "SELECT nome from usuarios"; //aqui estava tentando puxar os dados por um tutorial aleaório

      }
      ?> 
      <html lang="pt-br">
      <head>
      <meta charset="utf-8">
      <link rel="stylesheet" href="CSS/estilouser.css" type="text/css" media="screen">
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
      <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> 
      <title> Ak_Ray Projects </title>
      </head> <body bgcolor="#B3D1F7">

      <div class="navbar">
      <a href="#home">Meu</a>
      <a href="#news">Projetos</a>
      <a href="#newss">Novidades</a>
      <a href="sair.php" style="position: relative;left:1020px;">Sair</a>
      <!--<a href="sair.php">Sair</a>-->
      </div>
      <div class="branco"> 
      <h2>
        <center>
         <font color="#20A1C6">
          Criação e Desenvolvimento de Jogos<br>Ak_Ray
         </font>
        </center>
       </h2>
      <div class="titlee">
      <strong>The Amazing word of Bimo</strong>
      <div class="contt">
      <center><img src="IMG/FOTOJOGO.png" width="150" style="border-radius: 20px;"></center>
      <a href=\"bimo.netlify.com\"><img class="animacao" src="IMG/button.png" width="40"></a>
      </div>
      </div><br>
      The Amazing Word of Bimo foi um Jogo criado em 2019, inspirado na franquia de jogos de <strong>Super Mario World.</strong>
      O jogo está em versão de desenvolvimento e está sendo produzido e alterado
      constantemente. 
      </div>
      <?php  echo con;  ?> // exibindo só de teste

      </body></html>
       
      ================================================================================================================================
      Obs caso precisem: 
      nome do banco de dados:  projeto_login
      host: localhost
      usuario: root
      senha: ""
      tabela criada: usuarios
      tutoriais assistidos: 
       
    • Por tupinikin
      Bom dia senhores.
      Estou dando manutenção em uma banco de dados que não estava normalizado, sem chaves estrangeiras etc etc
      depois de cria-las, quando vou importar os dados, acontecem vários erros, pq tem chaves primárias que foram excluidas
      e no caso da estrangeira, fica ausente.
      No phpmyadmin tem a opção de não checar as chaves, mas não gostaria de manter dados que não existem.
       
      Qual a forma mais fácil de eu encontrar os registros que estão referenciados á um chave primária que não existe?
       
      grato
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.