Search the Community
Showing results for tags 'chave estrangeira'.
Found 3 results
-
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.
-
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.
-
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;