Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera,
achei um base de dados com todas as cidades e estados do Brasil, com seus respectivos bairros, distritos, etc….
Nesse site (1): http://www.webartz.com.br/mysql/banco-de-dados-de-cep-de-todo-brasil/
E nesse (2): http://www.webartz.com.br/mysql/banco-mysql-de-cidades-e-estados-do-brasil/
Mas eu não tow conseguindo entender perfeitamente o relacionamento entre essas tabelas... {é só uma questão de lógica}
É tipo assim:
CREATE TABLE `ac` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`cidade` varchar(50) DEFAULT NULL,
`logradouro` varchar(70) DEFAULT NULL,
`bairro` varchar(72) DEFAULT NULL,
`cep` varchar(9) NOT NULL,
`tp_logradouro` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_log_loc1` (`cidade`)
) ENGINE=MyISAM AUTO_INCREMENT=845 DEFAULT CHARSET=latin1;
onde tem uma estrutura dessas para cada estado do país, com o nome da tabela sendo referente às siglas de cada estado.
CREATE TABLE IF NOT EXISTS `cep_log_index` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`cep5` varchar(5) NOT NULL DEFAULT '',
`uf` enum('ac','al','am','ap','ba','ce','df','es','go','ma','mg','ms','mt','pa','pb','pe','pi','pr','rj','rn','ro','rr','rs','sc','se','sp','to') NOT NULL DEFAULT 'ac',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=11724 ;
Contendo os cinco primeiros números dos CEPS de cada estado e suas variações. Depois temos:
CREATE TABLE IF NOT EXISTS `cep_unico` (
`Seq` bigint(20) NOT NULL DEFAULT '0',
`Nome` varchar(50) NOT NULL DEFAULT '',
`NomeSemAcento` varchar(50) DEFAULT NULL,
`Cep` varchar(9) DEFAULT NULL,
`UF` char(2) NOT NULL DEFAULT '',
PRIMARY KEY (`Seq`),
KEY `idx_cep_loc` (`Cep`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
... contendo os ceps de cada cidade, referente ao seu estado. E por final,
CREATE TABLE IF NOT EXISTS `uf` (
`UF` char(2) NOT NULL DEFAULT '',
`Nome` varchar(72) NOT NULL DEFAULT '',
`Cep1` varchar(5) NOT NULL DEFAULT '',
`Cep2` varchar(5) NOT NULL DEFAULT '',
PRIMARY KEY (`UF`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
No segundo (2) link, tem uma tabela com todas as cidades e estados do brasil. Até aqui tudo bem... uma tabela faz referência a outra... essa eu consegui Relacionar...
Mas no primeiro (1) link, eu tenho várias tabelas, uma para cada estado, e um mooonte de CEP... mas nenuma faz referência a outra por ID...
Então, como que eu poderia referenciar essas tabelas? Pelo CEP? Tenho de fazer um Model para cada tabela?
Saquei...
Eu estava me perguntando sobre isso mesmo, mas queria saber se teria uma relação entre os dois scripts... um só com os estados e cidades, e o outro dos ceps...
OU se a ligação seria justamente entre os ceps, já que já existe uma tabela pra cada estado (al,rn,sp,...), e outra com as cidades e ceps (uf)... por que se for pra inserir os ID's de relacionamento eu vou gastar umas muitas semanas fazendo isso... (seria coisa de louco ¬¬)
Se tem alguma relação não tem como saber qual.... fala com o cara que fez esta base, talvez os CEP's possam servir como chaves e etc.. (mas mesmo assim não é recomendado, devem existir outros db's estruturados corretamente, da uma googleada xD)
Bom, você terá que modificar as tabelas e add as chaves primárias e estrangeiras necessárias... aí sim você faz os relacionamentos...