Nebo alespoň ty, co si to zaslouží
Ne tohle opravdu není žádný propagační článek IFPI, OSA nebo BSA. Jde spíš o primitivní návod, jak jednoduše vytvořit tabulku v MySQL, která bude obsahovat názvy veškerých obcí ČR.
Nejdříve potřebujeme alespoň zdánlivě použitelná data. Poslouží databáze PSČ České pošty. Soubor rozbalíme a otevřeme v OO nebo v Excelu. Po letmém pohledu je jasné, že nás bude zajímat poslední sloupeček “NAZOBCE“, který si zkopírujeme do nového listu. Teď stačí jen, odstranit duplicitní záznamy. V Excelu zabrousíme do menu Data->Fitr->Rozšířený filtr, kde stačí zaškrtnou pouze přepínač “Bez duplicitních záznamů“. Výsledný list uložíme do CSV, nebo ještě lépe rovnou zkopírujeme řádky a uložíme v jakémkoliv editoru jako UTF-8.
Máme tedy tu zdlouhavou část za sebou a teď už stačí jenom vytvořit tabulku a naimportovat data. Tabulky vytvoříme například takto:
CREATE TABLE `city` (
`city` varchar(250) COLLATE utf8_czech_ci NOT NULL,
`country` varchar(2) COLLATE utf8_czech_ci NOT NULL DEFAULT ‘cz’,
UNIQUE KEY `city` (`city`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
Tabulku tedy máme a teď už stačí jen naimportovat data (třeba přes phpMyAdmina):
LOAD DATA LOCAL INFILE ‘d:/docs/obcecr.csv’
INTO TABLE city
FIELDS TERMINATED BY ‘,’
LINES TERMINATED BY ‘\n‘
(city)
A je to. Tak přeji hodně úspěšných našeptávačů (autocompleterů)
pozn. Může se stát, že různé státy mohou mít obce se stejným jménem; vím například o Aberdeenu, který jak ve Skotsku, tak v US ve státě Washington. Pokud tedy plánujete nějaké masivnější zeměpisné hrátky, doporučuji odstranit:
UNIQUE KEY `city` (`city`)
Popularity: 100% [?]