2009-03-06 7 views
4

Le stockage structuré de personal names semble assez difficile lorsqu'il s'agit d'une application utilisée par des utilisateurs de différents pays. L'application sur laquelle je travaille pourrait théoriquement être utilisée par n'importe qui de n'importe quel endroit dans le monde. Le plus souvent, un given name (first name/forename) et surname semble être utilisé. Dans ce cas, ces deux peuvent simplement être stockés dans la table de la base de données utilisateur.Noms personnels dans une application globale: Stockage

  • Est-ce que le "prénom" et le "nom de famille" sont stockés dans la table d'utilisateur assez pour une application utilisée globalement? S'il vous plaît donner votre opinion avec une motivation.
  • Avez-vous d'autres suggestions?
  • Y a-t-il de bons guides pour résoudre ce problème?

Quelques faits importants:

  • communication entre les utilisateurs (qui résident dans les mêmes ou différentes entreprises et peuvent être dans différents pays).
  • Il est important que la recherche d'utilisateurs par nom soit naturelle pour les utilisateurs et que toutes les parties importantes d'un nom de personne soient consultables.
  • Ce serait bien si, lors de l'envoi d'un message à quelqu'un dans un autre pays, le système devrait être en mesure d'aider en suggérant un message d'accueil approprié. Ce sera probablement difficile pour les noms arabes, du moins d'après ce que j'ai lu, car ils semblent avoir une structure complexe.
+0

Y at-il une raison que vous devez séparer le nom en "parties"? Sinon, vous pouvez simplement avoir un champ "Nom". –

+0

Relatif à http://stackoverflow.com/questions/128099/what-is-the-longest-human-name-you-can-expect – jmucchiello

+0

@Amanda: C'est pour différents cas d'utilisation, ayant les composants pourrait le rendre plus facile à soutenir les cas d'utilisation connus et les futurs cas d'utilisation. @Joe: Ce n'est pas du tout lié. –

Répondre

5

Il n'existe pas vraiment de manière structurée universelle pour ce faire. J'aurais un grand champ pour "Nom complet" et un autre champ pour "Nom d'affichage". Les deux Unicode.

Par exemple, dans les pays hispanophones, IIRC, les gens ont généralement quatre noms. Deux prénoms et deux noms de famille (un du père, un de la mère). Les Arabes ont essentiellement une liste de noms liés aussi loin qu'ils choisissent d'aller (Untel, fils d'untel, fils d'untel, etc.). Les pays d'Asie de l'Est ont tendance à mettre les prénoms en dernier, alors que les Européens ont mis les prénoms en premier.

1

Si vous êtes vraiment intéressés par une mondialisation à travers toutes les cultures, jetez un oeil au HR-XML specification of Person. Prénom & nom de famille ne suffit pas de le couper lorsque vous vous déplacez à l'extérieur de l'Ouest. Les normes orientales de FamilyName GivenName vous trébucheront en définissant FullName. En outre, vous avez toutes les complexités potentielles des scripts alternatifs (tout le monde n'utilise pas l'alphabet latin, vous le savez), les préfixes et les suffixes (NN Sr, van der Waals).

C'est une norme destinée à la transmission et à l'intégration plutôt qu'au stockage, mais ne laissez pas la syntaxe du schéma XML vous effrayer. Je ne mettrais pas en œuvre tous les aspects, mais c'est un excellent fournisseur de casse-tête qui ne sont pas immédiatement évidents, et que vous pouvez ensuite ignorer consciemment. En particulier, consultez les exemples à la fin!

Et pour l'amour de Dieu, ne créez pas une application américaine qui suppose une moyenne initiale pour tout le monde!

1

En général, un nom est un identifiant lisible par un humain d'une personne. Pour une personne donnée, vous devrez stocker un nom pour chaque cas d'utilisation d'un tel identifiant. Vous aurez besoin d'un nom à afficher dans le cadre de l'adresse postale; il se peut que vous deviez en utiliser un en tant que "pseudonyme"; vous pouvez en avoir besoin pour ouvrir une lettre à la personne; vous pouvez parfois avoir besoin d'inclure les titres et les honneurs de la personne, parfois non.

Dans l'un de ces cas, ce que vous souhaitez afficher est une chaîne unique. Vous pouvez ou non être en mesure d'éviter la duplication des efforts en stockant les composants de ces chaînes et en les reconstituant plus tard. Mais en général, à la fois en termes de culture nationale et de culture professionnelle, vous feriez peut-être mieux de simplement stocker toutes les données. Il en va de même pour les adresses postales, sauf qu'il existe des normes internationales qui permettent à l'administration postale d'un pays d'envoyer du courrier à des personnes d'un autre pays.

Questions connexes