Fórum Cidade + Estado único na Table (MySQL) #500795
11/11/2014
0
CREATE TABLE IF NOT EXISTS `Estados` ( `id` INT AUTO_INCREMENT, `nome` VARCHAR(32) NOT NULL, `uf` VARCHAR(2) NOT NULL, PRIMARY KEY (id) ); CREATE TABLE IF NOT EXISTS `Cidades` ( `id` INT AUTO_INCREMENT, `nome` VARCHAR(64) NOT NULL, `idEstado` INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (idEstado) REFERENCES `Estados` (id) );
O problema e que não posso usar UNIQUE no campo `nome` da tabela `Cidades` pois ha mais de uma cidade com o mesmo nome, porem o estado diferente.
Seria o caso de usar uma chave composta??
Cleverson
Curtir tópico
+ 0Post mais votado
11/11/2014
Retire o campo idEstado da tabela Cidades.
E crie uma tabela intermediária Estados_Cidades com chave composta ou onde a mesma seja primarykey:
CREATE TABLE IF NOT EXISTS `Estados_Cidades`
(
id_estado ......
id_cidade`.......
);
O diagrama da modelagem ficaria assim:
[img]http://arquivo.devmedia.com.br/forum/imagem/238223-20141111-104729.png[/img]
Soeuseijothaz
Gostei + 1
Mais Posts
11/11/2014
Alex Lekao
Eu acredito que sim, visto que o que vai determinar se a duplicidade existe ou nao eh o estado + cidade, entao acho que eh esse o caminho.
Nao tenho o costume de fazer modelagem etc, lido mais com scripts, mas se nao me engano eh isso mesmo. rsrsr
Abraco.
Gostei + 0
11/11/2014
Cleverson
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)