Michel Vuijlsteke's weblog

Tales of Drudgery & Boredom.

Database best practices gezocht

Wat zou de best practice tegenwoordig nog zijn om internationale adressen in een database op te slaan, eigenlijk?

Dus zowel adressen als

Johan Vandezande
Burgstraat 10
9000 Gent

Als adressen als

John Q. Bidet
c/o Dept. of Sciences
London School of Economics and Political Science
Houghton Street
London WC2A 2AE
United Kingdom

Als pakweg adressen als

Rui Pereira
Rua Julio Combardor, 23, 1º andar, apto. 104
Bela Vista
São Paulo – SP
BRASIL
01310-000

Ik ben geneigd om gewoon het hele adres in één groot meerlijnenveld te steken, en daarmee doef.

Serieus, wat is het nut om dat in straat – huisnummer – postcode – gemeente – land op te splitsen, als het toch alle mogelijke kanten uit kan gaan? En iets als xNAL is helemaal overkill, mijn gedacht. ’t Is een database die door mensen moet onderhouden worden, begot.

De enige reden die ik zou kunnen verzinnen voor iéts meer genormaliseerde dinges, is misschien een veld apart voor de postcode als het in België is, dat dan nuttig zou kunnen zijn voor mailings op gemeente of provincie of zo, en misschien een veld apart voor het land (of zelfs maar een vinkje “niet België”), dat dan kan gebruikt worden om in mailings het onderscheid te maken tussen binnen- en buitenland.

Oh, en misschien om fouten te vermijden zoals “8000 Gent” of “9820 Charleroi”, ja.

Maar dan nog. Zelfs voor geocoding en dingen raadt Google aan “Specify addresses in accordance with the format used by the national postal service of the country concerned”, dus ook voor heatmaps en watnog heeft het niet veel zin om vanalles apart op te slaan.

Enfin, tenzij ik me vergis natuurlijk hé.

6 reacties

  1. Ooooh, ik wil wel weten wat je daar uiteindelijk mee hebt aangevangen. Compleet zot van dat soort oefeningen, ik 🙂

  2. Ik ben hier ook een overstap aan het voorbereiden van 4 kolommen voor streetline1 tot -4 naar een multi-line ‘Address’ veld. Land (iso-3166), postcode en stad zijn wel apart nodig voor labels (DHL, DPD, etc.), maar de rest inderdaad: hoe minder je de gebruiker verwart hoe correcter hij informatie ingeeft.

  3. Ik snap er niets van maar 9820 Gent moet – met of zonder steun van de homo touristicus – te realiseren zijn! Dat ze zich in Melsen, Bottelare, Schelderode en de rest van het zootje maar al klaar houden…

  4. De addressfield module van Drupal gebruikt juist keihard XNAL en steekt alles in aparte tabellen en kolommen. En dan alle transformaties, validatie en what not in PHP.

    Reden: generieke oplossing proberen aanbieden die zoveel mogelijk use cases dekt.

    https://www.drupal.org/project/addressfield

Zeg uw gedacht

© 2017 Michel Vuijlsteke's weblog

Thema gemaakt door Anders NorenBoven ↑