Programa - Definição de tipo de relacionamento

Ir em baixo

Programa - Definição de tipo de relacionamento

Mensagem por Admin em Qui Jul 25, 2013 2:18 pm

O seguinte programa é um algoritmo simples que indica como definir que tipo de relacionamento existe entre duas tabelas, e como este relacionamento pode ser expressado no banco de dados.

Código:

import java.util.Scanner;

public class DefinidorDeRelacionamentp {
   public static Scanner scanner = new Scanner(System.in);

   public static void main(String[] args) {
      System.out.println("Digite o nome da primeira tabela: ");
      String nomeTabela1 = scanner.next();

      System.out.println("Digite o nome da PK da primeira tabela: ");
      String pkTabela1 = scanner.next();
      
      System.out.println("Digite o nome da segunda tabela: ");
      String nomeTabela2 = scanner.next();

      System.out.println("Digite o nome da PK da segunda tabela: ");
      String pkTabela2 = scanner.next();
      
      System.out.println("Um(a) " + nomeTabela1 + " tem no maximo quantos " + nomeTabela2 + "? (1-Um, 2-Vários" );
      int cardinalidade1 = scanner.nextInt();

      System.out.println("Um(a) " + nomeTabela2 + " tem no maximo quantos " + nomeTabela1 + "? (1-Um, 2-Vários" );
      int cardinalidade2 = scanner.nextInt();
      
      if (cardinalidade1 == 2 && cardinalidade2 == 2) {
         escrevaRelacionamentoMuitosParaMuitos(nomeTabela1, nomeTabela2, pkTabela1, pkTabela2);
      } else if (cardinalidade1 == 1 && cardinalidade2 == 2) {
         escrevaRelacionamentoUmParaMuitos(nomeTabela1, nomeTabela2, pkTabela1, pkTabela2);
      } else if (cardinalidade1 == 2 && cardinalidade2 == 1) {
         escrevaRelacionamentoUmParaMuitos(nomeTabela2, nomeTabela1, pkTabela2, pkTabela1);
      } else {
         System.out.println("Relacionamento um-para-um não suportado!");
      }
   }
   
   public static void escrevaRelacionamentoMuitosParaMuitos(String nomeTabela1, String nomeTabela2, String pkTabela1, String pkTabela2) {
      System.out.println("Relacionamento muitos-para-muitos");
      System.out.println("SOLUÇÃO:");
      System.out.println("Crie a seguinte tabela: ");
      System.out.println("CREATE TABLE " + nomeTabela1 + "_" + nomeTabela2 + "(");
      System.out.println("  " + pkTabela1 + " ...,");
      System.out.println("  " + pkTabela2 + " ...,");
      System.out.println("  PRIMARY KEY(" + pkTabela1 + "," + pkTabela2 + ")");
      System.out.println("  FOREIGN KEY(" + pkTabela1 + ") REFERENCES " + nomeTabela1 + "("+ pkTabela1 + "),");
      System.out.println("  FOREIGN KEY(" + pkTabela2 + ") REFERENCES " + nomeTabela2 + "("+ pkTabela2 + "),");
      System.out.println(");");               
   }

   public static void escrevaRelacionamentoUmParaMuitos(String nomeTabela1, String nomeTabela2, String pkTabela1, String pkTabela2) {
      System.out.println("Relacionamento um-para-muitos");
      System.out.println("SOLUÇÃO:");
      System.out.println("Adicione um FK na tabela : " + nomeTabela1);
      System.out.println("CREATE TABLE " + nomeTabela1 + "(");
      System.out.println("  --... outras colunas ...,");
      System.out.println("  " + pkTabela2 + " ...,");
      System.out.println("  FOREIGN KEY(" + pkTabela2 + ") REFERENCES " + nomeTabela2 + "("+ pkTabela2 + "),");
      System.out.println(");");               
   }
}

Admin
Admin

Mensagens : 123
Data de inscrição : 01/07/2013

Ver perfil do usuário http://geracaotecjava.forumbrasil.net

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum