Личные имена в глобальном приложении:Что хранить

StackOverflow https://stackoverflow.com/questions/620118

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

Решение

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

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

Другие советы

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

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

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

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

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

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

Одна нота:не требуйте одновременно "имя" и "фамилию".

У некоторых людей, таких как я, есть только одно имя.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top