Avatar billede herlevsen123 Nybegynder
25. januar 2013 - 14:43 Der 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 (:

På forhånd tak!
Avatar billede finb Ekspert
25. januar 2013 - 15:08 #1
Det er klart nemmest at du har postnr/afstande i egen tabel,
nogen gange ændres/nedlægges/oprettes/sammenlægges postnr.
mvh finb, tidl. postDanmark
Avatar billede herlevsen123 Nybegynder
25. januar 2013 - 15:26 #2
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.
Avatar billede acore Ekspert
25. januar 2013 - 16:02 #3
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.
Avatar billede herlevsen123 Nybegynder
25. januar 2013 - 16:09 #4
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.
Avatar billede acore Ekspert
25. januar 2013 - 17:13 #5
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å.
Avatar billede herlevsen123 Nybegynder
25. januar 2013 - 19:33 #6
Det er selvfølgelig rigtigt. Som jeg lige kan se når jeg bruger maps, så vælger den, den korteste rute. Det er også helt fint.

Men gode pointer. Tror jeg har fået det jeg har brug for. Tak! (: Smider du et svar?
Avatar billede acore Ekspert
25. januar 2013 - 21:18 #7
Svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester