GARANTIR DESCONTO

Fórum Cidade + Estado único na Table (MySQL) #500795

11/11/2014

0

Ola, estou com um pequeno problema em uma table: Nao quero que uma cidade seja duplicada no mesmo estado, la vai as tables do MySQL:

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

Cleverson

Responder

Post mais votado

11/11/2014

Olha uma abordagem para resolver isto seria.

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

Soeuseijothaz
Responder

Gostei + 1

Mais Posts

11/11/2014

Alex Lekao

Ola, bom dia!!!

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.
Responder

Gostei + 0

11/11/2014

Cleverson

Oh grato, vou corrigir :)
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar