Как сохранить имя человека в таблице записей - PullRequest
4 голосов
/ 29 ноября 2010

Введение

Черт, это сложнее, чем я думал.

У некоторых людей есть верблюжий корпус имен, таких как McDonald или O'Ferncher, а у некоторых нет двубортного имени, но дефисного имени как Bowes-Lyon или просто имя , как Honovi Hohnihhohkaiyohos (Сильный волк с высокой спинкой). В некоторых культурных пространствах, таких как:

  • португальский у вас есть больше, чем 1 фамилия и больше, чем 1 имя (по умолчанию).
  • Россия у вас отчество ( отчество ), то есть обязательно .

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

Как будто этого недостаточно - люди могут и будут вступать в брак (это происходит довольно часто) (вы могли бы сделать это несколько раз), и это по умолчанию обычай для хотя бы одного партнер, чтобы сменить фамилию . В большинстве мест люди могут изменить свое имя или, по крайней мере, имя. alt text

Подробнее

Это не важно, если вы хотите ответить на вопрос, просто дать подсказку, что я пытаюсь сделать.

Таблицы, в которых я хочу хранить имена, представлены в xml и appengine datastore с twig интерфейсом хранилища объектов (среди прочего я использую twig, поскольку он позволяет мне компилировать схему) , Сами данные могут поступать из разных мест, и, вероятно, существует случай, когда используется старое имя (то есть, хранится несколько имен).

Мое лучшее предположение:

@XmlAttribute @Key protected Long id;
@XmlElement(required = true) final protected List<String> lastName;
@XmlElement(required = false) protected String middleName;
@XmlElement(required = true) final protected List<String> firstName;
@XmlElement(required = true) protected Boolean isMale;
@XmlElement(required = true) protected Date birthday;
//+locale for naming?

Написание функции или предварительных условий для метода compareTo просто делает мой день ... Я серьезно рассматриваю 0 отказоустойчивости. Да, значение существования или отсутствия апострофов, пробелов и других символов или разницы в регистре может привести к различным результатам. (А для циничных ублюдков - это не домашняя работа.)

Вопрос был: Как сохранить имя человека в таблице записей?

1 Ответ

3 голосов
/ 29 ноября 2010

Если вы ищете простое универсальное решение, я думаю, вы обнаружите, что его нет.Прочитайте эту запись в блоге и плачьте.

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

...