Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Données : Quel type utiliser pour les Adresses emails, domaines, numéro de sécurité sociale et autres

Sujet pourtant assez simple et pourtant le nombre de « boulettes » ai-je déjà vu sur le sujet ? Ok, j'en ai aussi fait :o( Quel type de données utiliser pour différents éléments courant que l'on trouve dans la vie courante ?

Le nom de domaine

Le nom de domaine est défini par la RFC 1035, qui relate tout ce qui est implémentation de DNS et qui à la section 2.3.4 indique une taille maximale de 255 octets. Les caractères sont des caractères ASCII simples ce qui permet d'utiliser un jeu de caractère 7bits, mais il existe une nouvelle norme qui permet l'utilisation de caractères Unicode pour les noms de domaine. Cependant celle-ci précise aussi que tout domaine de cette forme (définie dans la RFC 3490) doit être convertible en domaine classique avec caractères ASCII (la RFC indique d'ailleurs comment). Dernier point les comparaisons de domaines sont non sensibles à la casse (majuscules / minuscules)

Au niveau de la base de données nous aurons donc un champ de type : varchar(255)

L'adresse email

L'adresse email est définie par la RFC 2822 et RFC 2821, qui indique la liste des caractères supportés (à nouveau ASCII 7bits), le format (de type alias@domaine), ainsi que la longueur. La longueur de l'alias étant de 64 octets maximum, on ajoute le « @ » et le domaine on obtient une adresse d'une longueur maximale de 320 octets. Dans ces mêmes RFC on apprend que la partie domaine, n'est pas sensible à la casse, mais que la partie alias, elle, l'est. Pour les types de caractères, pas d'Unicode sauf pour la partie domaine, qui de toute façon peut être traduite en ASCII.

Au niveau de la base de données nous aurons donc un champ de type : varchar(320)

L'adresse IP

L'adresse IP est différente suivant la norme utilisée, comme vous le savez peut être le monde de l'Internet est en cours de transition du mode d'adressage IPV4 vers IPV6, pour des questions de nombres d'adresse utilisable, le protocole change aussi légèrement.

En IPV4, c'est la RFC 791 qui décrit le format de l'adresse. En fait l'adresse est un binaire de 32 bits que l'on représente souvent sous la forme A.B.C.D. (A, B, C D étant des entier non signé 8 bits).

En IPV6, c'est la RFC 2460, la taille de l'adresse est passée à 128 bits, la représentation change et devient une liste de blocs hexadécimaux : AB :CD :EF :AB :CD :EF :AB :CD

Au niveau de la base de données personnellement je préfère (pour des questions de performance) stocker une adresse IPV4 en : int . Et pour une adresse en IPV6 en binary(16) . Ici c'est plus une question d'appréciation, mais avec ces types vous limitez l'espace de stockage et permettez une exécution rapide de la recherche.

Le code INSEE

On sort du monde de l'informatique…

Voir l'un de mes précédent post : http://blogs.codes-sources.com/christian/archive/2006/07/29/donnees-geographiques.aspx

Le code INSEE est un code alphanumérique de 5 caractères, qui représente de manière unique la liste des communes de France et des Pays du monde (pour lesquels on préfèrera la même liste ISO, voir aussi le post cité plus haut). Gardez en tête que malgré le double codage existant en France (la Poste avec ses codes postaux, les codes INSEE), que seule la liste INSEE représente les communes, et non les bureaux distributeurs, etc. La liste des codes varient d'année en années, des communes apparaissant et disparaissant.

Ce code est un bien un alphanumérique, à cause de la Corse qui possède les codes 2A et 2B, il ne faut donc pas coder en numérique.

Au niveau de la base de données nous aurons donc un champ de type : char(5). Le char (plutôt que varchar) étant dicté par la longueur fixe et la taille courte du type.

Le numéro de sécurité sociale

C'est aussi un code dicté par l'INSEE (appelé NIR (Numéro d'indentification des individus)), on retrouve donc sans surprise dans celui-ci une partie de la précédente valeur. Le code est représenté comme suit :

A BB CC DD EEE FFF GG

A représente le sexe, BB le numéro de l'année de naissance, CC le mois de naissance, DD le département de naissance, EEE le numéro de la commune de naissance, FFF est un numéro de séquence unique (détermine l'ordre de naissance par rapport au précédent) et GG est la clef permettant de vérifier la validité de la saisie. DDEEE est notre code de commune INSEE du point précédent.

Au niveau de la base de données nous aurons donc un champ de type : char(13). Ce code n'est pas numérique, il n'est pas possible de le stocker d'une autre manière et il est aussi de longueur fixe. Pour la clef, elle ne nous intéresse pas elle sert uniquement à vérifier la validité de la saisie, vous pouvez ajouter une contrainte sur le champ en suivant la règle suivante : http://xml.insee.fr/schema/nir.html#Clé_NIR

Bon codage…

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Publié lundi 28 mai 2007 12:02 par christian
Classé sous : ,

Commentaires

Pas de commentaires
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01