Quelle est la “meilleure” façon de stocker des adresses internationales dans une base de données?
Qu'est-ce que le "meilleur" moyen de stocker des adresses internationales dans une base de données? Réponse sous la forme d'un schéma et une explication des raisons pour lesquelles vous avez choisi de normaliser (ou pas) comme vous l'avez fait. Également expliquer pourquoi vous avez choisi le type et la longueur de chaque champ.
Remarque: à Vous de choisir les champs que vous estimez nécessaires.
- Codes postaux peuvent être complexes - par exemple, il n'existe pas de système postal dans la République d'Irlande, bien que les codes postaux existent pour Dublin (tous numérotés de 1 à 24, à l'exception de 6W).
- Je déclamée à propos de cette dernière année! les Adresses dans des bases de données
- Après discussion peut aider.. stackoverflow.com/questions/1159756/...
Vous devez vous connecter pour publier un commentaire.
Plaine du texte libre.
Valider tout le monde postal codes, c'est trop dur; fixe la liste des pays est trop politiquement sensibles; l'obligation d'état/région/autre subdivision administrative est tout simplement inapproprié (trop souvent je me suis demandé à qui je vis dans le comté de--quand je n'en ai pas, parce que le Grand Londres n'est pas un comté à tous).
Plus au point, c'est tout simplement inutile. Votre demande est très peu probable que la modélisation des adresses de façon sérieuse. Si vous voulez une adresse postale, demander de l'adresse postale. La plupart des gens ne sont pas stupides au point de le mettre dans autre chose qu'une adresse postale, et s'ils le font, ils peuvent baiser qu'ils viennent d'acheter élément bye-bye.
L'exception à cette règle est si vous faites quelque chose qui est naturellement limitée à un seul pays de toute façon. Dans cette situation, vous devez le demander, dire, {le code postal, le numéro de la maison } paire, ce qui est suffisant pour identifier une adresse postale. J'imagine que vous pourriez réaliser des choses similaires avec l'étendue code postal dans le NOUS.
Dans le passé, j'ai modélisé les formulaires qui doivent être international après l'ups/fedex de livraison l'adresse de formes sur leurs sites web (j'ai pensé que si ils ne savent pas comment gérer un ordre international, nous sommes tous arrosé). Les champs qu'ils utilisent peuvent être utilisés comme référence pour la configuration de votre schéma.
En général, vous devez comprendre pourquoi vous voulez une adresse. Est-il pour l'expédition postale? Ensuite, il n'y a vraiment qu'une seule condition, avoir le pays séparé. Les autres lignes sont de forme libre, à remplir par l'utilisateur. La raison pour cela est la transmission commune de la stratégie pour le courrier : tout courrier entrant pour un pays étranger est transmise sans regarder les autres lignes d'adresse. Par conséquent, l'information détaillée est seulement analysée par le tri du courrier, situé dans le pays lui-même. Comme le récepteur, ils vont être familier avec les conventions nationales.
(UPS peuvent se rassembler certains petits pays Européens, e.. tous les Pays-Bas sont probablement servi de Belgique - l'idée tient toujours.)
Je pense que l'ajout de pays/ville et adresse de texte fera l'affaire. pays et de la ville doit être distinct à des fins de reporting. Les gestionnaires de toujours demander pour ce genre de rapports que vous ne vous attendez pas et je ne préfère exécution d'une requête par le biais d'une base de données volumineuse.
De ne pas donner de Facebook excessive de respect. Cependant, l'ensemble de la structure de la base de données semble être négligé dans de nombreuses applications web le lancement de tous les jours. Évidemment, je ne pense pas qu'il y est une solution parfaite qui couvre toutes les variables potentielles avec l'adresse de la structure sans un peu de travail acharné. Cela dit, combinée avec la saisie semi-automatique Facebook parvient à prendre l'emplacement des données d'entrée et d'éliminer une grande partie de leur des entrées redondantes. Ils le font par l'organisation de leur base de données de la saisie semi-automatique de l'information dans un faible coût, faible erreur façon pour le client en temps réel, leur permettant de plus ou moins choisir le bon emplacement à partir d'une liste existante.
Je pense que la meilleure solution est d'accéder à une base de données de tiers qui contient votre choix de l'étendue géographique et de l'utiliser pour d'abord de graines de votre emplacement de l'utilisateur de l'information. Cela vous permettra d'éviter de faire la groudwork de la création de votre propre. Avec un peu de chance, vous pouvez réduire la charge sur votre serveur en permettant aux nouveaux utilisateurs de recevoir le bon de saisie semi-automatique d'informations directement à partir de votre fournisseur tiers. Finalement, vous serez en mesure de combler la plupart de saisie semi-automatique pour des informations de localisation (ville, pays, etc. à partir des informations contenues dans votre propre base de données de l'utilisateur à partir des données d'entrée.
Vous devez fournir un peu plus de détails sur la façon dont vous prévoyez d'utiliser les données. Par exemple, des domaines comme la Ville, l'État, le Pays peut être soit du texte dans la table unique, ou être des codes qui sont liés à une table séparée avec une Clé Étrangère.
Plus simple serait
Address_Line_01 (Obligatoire, Non vide)
Address_Line_02
Address_Line_03
Point de repère
Ville (Obligatoire)
Pin (Obligatoire)
Province_District
De L'État (Obligatoire)
Pays (Requis)
Tous les ci-dessus peut être du Texte Unicode/avec le champ approprié longueurs.
Numéros de téléphone selon le cas.