Личные имена в глобальном приложении: что хранить - PullRequest
4 голосов
/ 06 марта 2009

Хранение личных имен в структурированном виде кажется довольно сложным, когда дело доходит до приложения, которое используют пользователи из разных стран. Приложение, над которым я работаю, теоретически может быть использовано любым человеком из любой точки мира.

Чаще всего кажется, что используется имя (имя / имя) и фамилия . В этом случае эти два могут быть просто сохранены в таблице базы данных пользователей.

  • Достаточно ли хранения "данного имени" и "фамилии" в пользовательской таблице для глобально используемого приложения? Пожалуйста, выскажите свое мнение с мотивацией.
  • У вас есть другие предложения?
  • Есть ли хорошие руководства о том, как решить эту проблему?

Некоторые важные факты:

  • Связь между пользователями (которые проживают в одной или разных компаниях и могут находиться в разных странах).
  • Важно, чтобы поиск пользователей по имени казался естественным для пользователей и чтобы все важные части имени человека были доступны для поиска.
  • Было бы неплохо, если бы при отправке сообщения кому-то в другой стране система могла помочь, предложив правильное приветствие. Вероятно, это будет трудно для арабских имен, по крайней мере из того, что я прочитал, поскольку они, кажется, имеют сложную структуру.

Ответы [ 4 ]

5 голосов
/ 06 марта 2009

Не существует универсального структурированного способа сделать это. У меня было бы большое поле для «Полного имени» и другое поле для «Отображаемого имени». Оба Unicode.

Например, в испаноязычных странах IIRC люди обычно имеют ЧЕТЫРЕ имени. Два имени и две фамилии (одна от отца, одна от матери). У арабов, по сути, есть связанный список имен, так далеко, как они хотят (так-то, сын такой-то, сын такой-то, ...) Страны Восточной Азии, как правило, ставят эти имена в последнюю очередь, тогда как европейцы ставят эти имена в первую очередь.

1 голос
/ 08 июля 2011

Одно примечание: не требуется ни «имя», ни «фамилия».

Некоторые люди, как и я, имеют только одно имя.

(Доказательство: http://saizai.com/dl_redacted_small.png)

1 голос
/ 07 марта 2009

В общем, имя - это читаемый человеком идентификатор человека. Для данного человека вам нужно будет хранить одно имя для каждого варианта использования такого идентификатора. Вам понадобится имя для отображения как часть почтового адреса; вам может понадобиться использовать его в качестве «псевдонима»; вам может понадобиться использовать его при открытии письма к человеку; иногда вам может потребоваться указать звания и почести этого человека, иногда нет.

В любом из этих случаев вы хотите отобразить одну строку. Вы можете или не сможете избежать дублирования усилий, храня компоненты этих строк и соединяя их позже. Но в целом, как с точки зрения национальной культуры, так и профессиональной культуры, вам может быть лучше просто хранить полные строки.

То же самое, кстати, в основном относится к почтовым адресам, за исключением того, что существуют международные стандарты, которые разрешают почтовым органам одной страны отправлять почту лицам в другой стране.

1 голос
/ 06 марта 2009

Если вы действительно хотите стать глобальным во всех культурах, взгляните на HR-XML-спецификацию Person . Имя и фамилия просто не влияют, когда вы выезжаете за пределы Запада. Восточные стандарты FamilyName GivenName помогут вам определить FullName. Кроме того, у вас есть все потенциальные сложности альтернативных скриптов (не все используют латинский алфавит, понимаете), префиксы и суффиксы (NN Sr, van der Waals).

Это стандарт, предназначенный для передачи и интеграции, а не для хранения, но не позволяйте синтаксису схемы XML вас пугать. Я бы не стал реализовывать каждый его аспект, но это отличный поставщик угловых случаев, которые не сразу очевидны и которые вы можете затем сознательно игнорировать. В частности, ознакомьтесь с примерами в конце!

И ради бога, не создавайте американское приложение, которое предполагает средний инициал для всех!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...