25. januar 2013 - 14:43Der er
6 kommentarer og 1 løsning
Afstande mellem postnumre i database
Hej eksperter.
Jeg står og skal bruge afstandende mellem alle postnumre i dk. Jeg vil have det gemt i en database, da jeg skal kunne finde alle postnumre der er under en given afstand fra det valgte postnummer. eks: alle postnumre mindre end 50 km fra 2400.
Afstandende kan jeg få igennem google maps api, og det har jeg en programmør til at ordne for mig. Men eftersom der er omkring 1100 postnumre i Danmark, bliver der temmelig mange poster i databasen. Ikke at jeg forventer at det overhovedet er et problem.
Mit spørgsmål går egentlig bare på om der er nogle overvejelser jeg skal gøre mig mht dette? Er f.eks. interesseret i at vide om det er gavnligt at lægge disse afstande i en database for sig selv, eller om jeg lige så godt kan lægge dem i samme database som resten af min webapplikation.
Og så vil jeg også gerne høre om der er nogle ting der kan gøres for at gøre søgningen hurtigere i alle disse poster?
Programmøren ved sikkert også en masse om det, men det er altid dejligt med en second oppinion (:
Også en god pointe. Tænker at man kan køre afstandsberegningen en gang om året, og sørge for at postnumre som ikke længere eksisterer, ikke kan benyttes.
Det er mest i forhold til performance jer er interesseret. Hvis jeg nu har 2 databaser, der skal connectes til, om det vil være langsommere end hvis det både mine afstande og resten af min webapplikation ligger i en database.
Du kunne også overveje at gemme gps koordinater for hvert postnummer, og så udregne afstanden. Du kan sikkert stadig bruge googles api.
Det reducerer antallet af poster med over en faktor 1000.
Nogen vil måske påpege, at det vil give mindre nøjagtighed, og det er sikkert korrekt, men "afstanden mellem 2 postnumre" er i forvejen næppe præcist defineret.
Så ville jeg få flyveafstanden, og det er jeg ikke interesseret i. Jeg behøver heller ikke afstanden fra 3250 til 2400 og fra 2400 til 3250. Vil bare have afstanden en gang. At der så kan være en lille forskel i køreruten, efter hvor man kører fra, det kan jeg leve med.
Den pointe kan jeg godt se. Og du har ret - det er "kun" en faktor 550 omend det gør dine forespørgsler mere komplicerede og dermed langsommere.
På den anden side - hvad er afstanden mellem 4100 Ringsted og 4690 Haslev - to postnumre, der grænser op til hinanden? I fugleflugtslinie kan den vel være alt mellem 0 og 30-35 km. Og hvad med færger - Hundested-Rørvig fx - bruger man dem eller kører udenom? Bare for at påpege, at der er nogle forhold, der har en betydelig indflydelse på nøjagtigheden, og som gør, at køreafstanden også er unøjagtig.
Du skal have de rigtige index på dine tabeller (ihvertfald index på postnumrene og afstanden) og du skal sørge for at dine forespørgsler er optimerede, Om det er en eller flere databaser, tror jeg ikke betyder noget. Jeg ville bare lægge det i én.
Overvej også over den tid, det tager, at fylde databasen med data. Hvis hvert opslag tager 1 sekund, skal dit program køre i en uge - er det 0,1 sekund, kan du nøjes med 17 timer. Mon ikke der er begrænsninger i google maps api også? Dem kan du nemt støde på.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.