Er zijn vast standaard oplossingen voor het invoeren en uitlezen van telefoonnummer gegevens. Wie kan mij helpen hoe je een database 'juist'opzet en vervolgens voldoende flexibel kunt zijn met de output van telefoonnummers.

Het gaat om de nummer notatie met spaties of haakjes op de juiste plaats. Space Characters Design Standards.


Hoe doe je dat zo wie zo telefoon nummers in database - PHP
(varchar 10) 0506234567
(varchar 10) 0599123456
(varchar 10) 0601234567

Om de volgende officiele output te krijgen
( http://taaladvies.net/taal/advies/tekst/53/ )

In Nederlandse pagina's moeten daar officieel haakjes om en halve spaities tussen, kennen we dat in PHP en XHTML

(050) 623 45 67
(0599) 12 34 56
06-54 32 23 45

Internatinaal wil je uit dezelfde dbase input deze output

+31 50 623 45 67
+31 599 12 34 56
+31 6 12 34 56 78
Uhm

Nee, niet helemaal want ik vraag me af of de invooer in de dbase al anders zou moeten zijn dan (varchar 10).

Bovendien zie je bij sommige nummers groepjes van drie of van vier cijfers tussen haakjes. En dan een andere rest indeling,
En 06- is een heel andder verhaal...

tenminste dat denk ik :-)
Hoe je een telefoonnummer opslaat in de database maakt niet zoveel uit, zolang je maar een varchar gebruikt. Anders vallen voorloopnullen en tekens als - en () weg zonder dat MySQL een foutmelding geeft. (Jaja, MySQL weer...)

Hoe jij de telefoonnummers vervolgens op je website weergeeft, heeft te maken met de presentatie en dus output. De manier waarop het in de database staat heeft hier verder dus niets mee te maken.

ps. Deze vraag had je natuurlijk prima in je andere topic kunnen stellen ;)
Dat van dat topic vind ik best hoor.

Maar hoe kan ik het onderscheid brengen in de output compleet met spaties weergegeven door een *

Dat weet ik nu nog niet? Of vergis ik me

(varchar 10) 0506234567 en output (050)*623*45*67
(varchar 10) 0599123456 en output (0599)*12*34*56
(varchar 10) 0601234567 of output 06-54*32*23*45

+31*50*623*45*67
+31*599*12*34*56
+31*6*12*34* 56*78
Het verschil in output berust puur op het kengetal en de lengte ervan en het feit of het in buitenlandse notatie moet of niet.

Als je de telefoonnummers als 10 cijfers opslaat, heb je geen mogelijkheid meer om te bepalen wat het kengetal is. Immers is het nu 0599-123456 of 059-9123456?

Wellicht dat het dus verstandig is om het kengetal van een telefoonnummer in een aparte kolom op te slaan. Vervolgens kun je met behulp van php de telefoonnummers verder opmaken.
Mooi, dat van die twee kolommen.

Doen de grote dbase jongens en meiden bij de grote databases dat ook zo?

Ik ben eigenlijk op zoek naar 'de standaard' oplossing op dit gebied. Als het al bestaat?
Mijn ervaring leert dat er nooit een echte 'standaard oplossing' is. Veelal kunnen problemen op meerdere manieren aangepakt worden. De vraag die je je stelt is dan altijd: 'wat pas het best in mijn systeem?'.

Maar goed, hier is het wel verstandig om een aparte kolom te gebruiken aangezien anders de betekenis van het kengetal verloren gaat.
Een landnummer hoort bij een land, duhhh, en sla je dus op in de tabel waarin je ook de landen hebt staan. Laat een user eerst het land kiezen en vervolgens zijn locale telefoonnummer opgeven. Dus zónder bv. +31 of +55. Dat voorkomt een hoop tikfouten en foute data.
Een kengetal hoort daarentegen weer bij een gemeente en ik kan me voorstellen dat je die informatie niet opslaat. Dan sla je het kengetal dus op in een extra kolom in de gebruikerstabel.
Kolom kengetal lijkt mij ook zinnig.
Maar de landen nummers hoef ik niet bij de input volgens mij.

Omdat ik juist fexibele wil zijn met verschillende output op Nederlandse en niet Nederlandse pagina's.

Reageren