Проект ACIS: содержание, old manual.
Для хранения подробностей имени человека в записях типа "person",
мы используем ветку name
с ключами:
first
,
last
,
middle
,
suffix
,
full
,
latin
,
variations
.
Пользователь напрямую вводит в запись первое, среднее, и
последнее имена (а так же, суффикс). Если это делает новый
пользователь (на экране new-user/initial
, то мы
комбинируем эту информацию и формируем список вариаций имени. На
экране new-user/additional
мы предлагаем пользователю
просмотреть и отредактировать этот список.
В случае зарегистрированного пользователя, и все подробности
имени, и список вариаций редактируется на экране
personal-data
, однако есть подозрение, что лучше будет
вынести это всё на отдельный экран names
.
Отредактированный пользователем список вариаций мы сохраняем в
name/additional-variations
. Превращаем список в набор
(set), добавляем в набор name/full
и
name/latin
(если определены). Сохраняем набор в виде
списка, отсортированного по длине элементов в убывающем порядке в
name/variations
.
Дополнительно, сравниваем получившийся набор с предыдущим
значением name/variations
. Если существуют отличия, то
мы пишем в name/last-change-date
.
Мы так же обновляем name/last-change-date
в случае, если
пользователь обновил любой из: name/first
,
name/last
,
name/middle
,
name/suffix
,
name/latin
,
name/full
.
name/last-change-date
содержит дату в виду seconds
since the epoch — целого числа в секундах с начала эпохи.