Моделювання імені та прізвища окремо


32

Які аргументи хтось повинен врахувати, розробляючи нову систему, і повинен або зберігати ім’я людини як одне поле, або окремо як ім’я / прізвище?

Плюси для одного поля:

  • Простіший інтерфейс користувача
  • Немає двозначності при спробі ввести ім’я людини, яка має дуже довге ім’я (часто не очевидно, що таке прізвище / ім'я ..)
  • Менша складність при обробці заголовків (наприклад, не потрібно вводити окремі поля для введення "MD" або "Dr.")

Плюси для розділеного поля:

  • Можливе персональне спілкування "Шановний пане X" або "Шановний Джулі"
  • Якщо споживаному веб-сервісу потрібно ім'я / прізвище окремо, його можна легко надати.
  • Кращий вибір для будь-якої галузі із суворими вимогами до ідентифікації (наприклад, медичної, урядової тощо)
  • Більш безпечний вибір, оскільки ви завжди можете повернутися до єдиної польової альтернативи

Чи бачите ви якийсь додатковий аргумент, який не вказаний вище?

Оновлення: питання полягає в тому, які додаткові (= не вказані у питанні) аргументи можуть бути вказані для кожного рішення. Я думаю, що надання думок замість можливих плюсів і мінусів веде дискусію неправильно. Кожен розробник повинен прийняти своє рішення щодо цієї проблеми, метою цього питання є скласти список нетривіальних аргументів, які можна оцінити за потреби.


11
Що ви намагаєтеся зробити з тими іменами? Чи є у вас юридичні вимоги? Чи є інший результат, крім відображення для імені користувача?
Darkhogg

9
Дистрибуція імені / прізвища не підтримує людей, які мають лише одне ім’я, наприклад, "Шер".
ЖакБ

77
Раджу прочитати наступну статтю: kalzumeus.com/2010/06/17/… це справжнє відкривання очей, коли думаєш про імена.
Пітер Б

10
Ви можете попросити задати це питання користувацьким досвідом , спільнота там може запропонувати інший погляд на цю проблему, що стосується користувальницького інтерфейсу.
11684

9
@PieterB Деякі пункти цієї статті сумнівні, і іноді вам доведеться робити припущення, щоб все зробити. Ця стаття не дає корисних порад щодо поводження з іменами. Якщо ім’я містить символи, що не використовуються унікодом, що ви робите, дозволити користувачу завантажувати зображення? Що робити, якщо є невізуальні аспекти - дозволити відео із звуком? Що робити, якщо ім’я є виконавським мистецтвом і його можна виконати лише опівночі в Гонконзі? У якийсь момент вам доведеться реально займатися і вирішувати проблеми замість того, щоб насолоджуватися теоретичними кутовими справами, з якими ваша база користувачів ніколи не зіткнеться.
Відновіть Моніку

Відповіді:


50

Ім'я та прізвище - це не корисні поняття. Імена працюють по-різному в різних країнах. У більшості азіатських країн прізвище пишеться спочатку, але воно все ще використовується для сортування - тому ви можете поставити його під іменем, і сортування буде неправильним, або за прізвищем, і відображення буде. І є такі країни, як Ісландія, де вони взагалі не використовують прізвища, а натомість ім'я батька. Тож вони просто сортуються за вказаною назвою.

Терміни "дане ім'я" та "прізвище" (або "прізвище") є кращими в цьому плані, але я б все-таки уникав їх, якщо це абсолютно не потрібно (тобто офіційні документи, такі як паспорти, мають їх, тож вони вам потрібні), тому що вони просто ускладнюють справи.

  • Можливе персональне спілкування "Шановний пане X" або "Шановний Джулі"

За винятком того, що ви не маєте уявлення про те, чи потрібно телефонувати даній особі за її іменем, чи прізвищем чи як. І не запускайте мене з мов, що мають звинувачувальний вигляд - ви не можете викривати звинувачення від номінативу взагалі. Ні, краще, якщо ви просто запитаєте користувача, як їм зателефонувати.

  • Якщо споживаному веб-сервісу потрібно ім'я / прізвище окремо, його можна легко надати.

Якщо . Якщо ви залежите від іншої служби, ви замикаєтесь на їх поганому виборі. Це не є перевагою для ваших власних конструкцій.

  • Кращий вибір для будь-якої галузі із суворими вимогами до ідентифікації (наприклад, медичної, урядової тощо)

Ні, для них це неправильний вибір. Офіційні документи, як правило, використовують терміни "ім'я" та "прізвище" (або "прізвище"), які є менш неоднозначними.

  • Більш безпечний вибір, оскільки ви завжди можете повернутися до єдиної польової альтернативи

Власне, через неоднозначність з азіатськими іменами, це не так зрозуміло, що можна.


2
Якщо додаток використовується в різних частинах світу, мітки поля повинні бути локалізовані разом із тим, як вони поєднуються / використовуються.
JeffO

5
@JeffO, справжнє питання полягає в тому, що в ці дні ви, швидше за все, є люди з різних країн в одній системі, тому вам потрібно створити систему і знайти спосіб, як вставити в неї імена різних культур, щоб вона працювала розумно послідовно . Не заходьте в цю кролячу нору, якщо вам вона справді не потрібна.
Ян Худек

4
@IstvanDevai в Каліфорнії був судовий випадок, коли договір було визнано недійсним, оскільки в законах про кредитування вимагалося "прізвище". У людини було подвійне латиноамериканське прізвище, але коли його запитували прізвище, було вказано перше (батьківське) прізвище, що є загальним. Інша сторона втратила справу про стягнення, оскільки ім'я в договорі не було його "прізвищем", тобто таким, яке було в кінці його повного імені. Приклад того, як перший / останній викликає плутанину, і не є повністю синонімом вказаних імен / прізвищ.

6
@Casey - середні імена повинні бути включені в поле заданих імен, тому що це вони: другорядні імена. Якби я мав долар за кожен раз, коли я бачив іспаномовну людину, яка не має прізвища, але подвійне прізвище отримує своє перше (і найважливіше) прізвище, занесене в поле з прізвищем, я б уже звільнився. Якщо ви хочете знати, як зателефонувати людині, укажіть поле для цього, відокремте від імені. Тоді Вартоломей Френк Едвард Сміт Веллінгтон може сказати вам назвати їх Барт. Ми можемо розмовляти англійською, але тут є люди з не-англомовних місць, і їх імена теж вводяться.

4
-1. Хоча сама відповідь не є абсолютно невірною, це не має особливого сенсу для розглянутого питання. ОП шукає більше аргументів для використання або одного поля, або двох полів для імен людини. Незалежно від того, чи називається він "перший / останній" або "даний / сюр", це не основна увага, це лише мітки, які ОП має на увазі. Усі інші моменти здаються мені дуже впевненими, і в моєму особистому досвіді створення та розгортання додатків для великих клієнтів припущення щодо ОП є цілком нормальними і просто так бувають . Ця відповідь просто намагається аргументувати параметри питання.
AnoE

31

Єдиний аргумент, який має значення, - які вимоги вашої системи?

Чи потрібно мати справу лише з однією культурою? Якщо так, відповідайте цій культурі. Інакше плануйте інтернаціоналізацію (як вказували інші).

Чи потрібно отримувати дані для вирішення питань урядових форм, охорони здоров’я чи інших правових / системних вимог? Дотримуйтесь тих, що диктують. Якщо це означає ім’я та прізвище, зробіть це. Якщо це означає щось інше, зробіть це.

Чи є у вас вимога до API з ім'ям та прізвищем (або це досить імовірно, достатньо, щоб зробити ігнорування YAGNI)? Робіть те, що має сенс там.

Якщо вам потрібні персоналізовані комунікації, чи розумно просто запитати когось у вибраному ім'я та зберігати це?

Вимоги вашої системи повинні визначати, що ви робите. Робіть те, що вам належить, а решта ЯГНІ.


7
Більше не існує такого поняття, як "одна культура". Навіть найменші громади мають змішані культурні норми та мови.
BobDalgleish

7
@BobDalgleish Правда, але іноді це не має значення. Іноді витрати на підтримку кількох культур змушують бізнесменів просто відповідати «ні».
Becuzz

9
@BobDalgleish Імовірно, яка культура є домінуючою на ринку, для якого розробляється додаток? Я не думаю, що це насправді таємниче чи рідкісне.
Кейсі

3
@BobDalgleish - "культура" не має значення. Ніхто не питає про вашу культуру, коли вам видають документи. Якби мені потрібно було підтримувати лише Сербію (де я зараз перебуваю), я б включав ім’я та прізвище, як вони визначені у кожному документі, виданому в цій країні, і це все. Не має значення, яка у вас культура. У вашому паспорті, посвідченні водія тощо буде вказано ім’я та прізвище, період.
Давор Ждрало

2
@icirellik Неправильно? Чи помиляються ці речі (обмеження довжини тощо), якщо ви намагаєтесь ідеально моделювати Всесвіт? Звичайно. Але мене ніколи не просили досконало моделювати Всесвіт, і всі можливі способи хтось міг захотіти вибрати ім’я. Чи я рахую імена Клінгона? Ні. Але чому б і ні? Хтось може це зробити колись (чесно не здивував би мене, якби хтось зробив це зараз). Але настає момент, коли ви просто знаєте, що будуть деякі речі, які просто не будуть працювати з вашою моделлю. І зайвий час розробки для вирішення кожної можливості просто не варто. (продовження ...)
Бекузз

5

Якщо у вас є кілька способів відображення та / або використання імен (ив), вам, ймовірно, знадобляться окремі поля. Поряд із введенням даних, ви можете надати зворотній зв'язок, щоб показати користувачеві, як вони будуть використовуватися. Як їх поєднувати, це може призвести до перетворення в одне поле в майбутньому.

Майте декілька міток, на яких видно: Привітання чи відображуване ім'я: Ім'я + Прізвище Організація / Сортування: Прізвище, Ім'я

Якщо ви не впевнені, як це буде використовуватися в майбутньому, почніть з розділених імен, а потім зможете об'єднати їх в одне поле, коли зрозумієте, що це все, що вам дійсно потрібно. Справа не в тому, що складно написати алгоритм, щоб розділити поле одного імені на ім’я та прізвище, але ви зробите помилку на декілька, і люди дійсно не люблять помилок зі своїми іменами. За допомогою розділених полів користувачі можуть налаштувати, як вони вводять своє ім’я, коли вони бачать, як воно використовується. Поєднувати їх у полі постійного єдиного імені менш ризиковано.


5

Я погоджуюся з багатьма словами, які сказав @JanHudec, хоча я хотів би трохи розширити це:

  • Вам потрібно знати, які ваші реальні вимоги, але простіше поєднувати інформацію, ніж розділяти її, коли вона знову поєднується.
  • Сортування завжди буде складним завданням, оскільки правила можуть відрізнятися в різних місцях та культурах.
  • Багато культур не відповідають вашій, що призводить до поганих припущень. (Це найбільший сенс Яна)

Термінологія важлива

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

Як далеко вам потрібно її розбити?

Існують поняття титулу (пан д-р місіс тощо) або порядкові (молодший, старший, III та ін.), І навіть посвідчення (доктор наук, MS, PCAM тощо), які можуть бути важливими залежно від контекст і мета.

У багатьох місцевостях є поняття про декілька прізвищ (батьківських та материнських), а деякі - жодного. Заповнюючи форми, інколи людям доводиться робити важкий вибір, яке ім'я використовувати, наприклад, використовувати батьківське прізвище для "прізвища" в американській формі, або придумувати прізвище, засноване на прізвище батька (Янсон ).

Хоча в Америці прийнято мати одне або кілька прізвищ, його часто ігнорують поза вашою родиною.

Сортування

Це допомагає мати виділене поле для сортування назви. Таким чином, ви можете розмежувати правила під час створення запису. Це також гарантує, що ви будете сортувати імена у правильному порядку через міжнародні кордони.

Загальні практики

Ваші реальні вимоги диктують, наскільки правильно ви повинні мати імена. Якщо ви створюєте урядовий чи банківський веб-сайт, тоді у вас більше вимог щодо зберігання та обробки імен, ніж до чогось неформального, як-от Facebook.

Неформальні вказівки

  • Майте одне поле, яке описує, як користувач хоче бути відомим
  • Для сортування та відображення використовується одне ім’я

Напівформальні вказівки

  • Майте одне поле для псевдоніма або про те, як користувач хоче звертатися
  • Майте два поля, одне для вказаного імені та одне для прізвища (прізвище повинно бути необов’язковим)
  • Обчисліть поле сортування на основі мови та комбінації даних / прізвища
  • Використовуйте псевдонім, звертаючись безпосередньо до користувача
  • Використовуйте формальне ім’я, коли ви перераховуєте людей

Офіційні вказівки

  • Вони продиктовані діючими політиками та процедурами для організації, яку ви підтримуєте
  • Вам потрібно стільки ж полів, скільки максимальна кількість частин імен, які ви будете підтримувати, названі семантично за тим, якими вони є.
  • Включіть поле для сортування, яке обробляє сортування так, як це було б у напівформальному випадку
  • Відображення також зазвичай продиктовано діючими політиками та процедурами. Вам потрібно ознайомитися з ними.

Чи хотів би ревізор розробити? Можливо, я щось пропустив?
Берін Лорич

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

4

Крім того, що @JanHudec зазначив, і з чим я згоден, також варто зазначити, що в багатьох країнах люди мають більше одного прізвища, тому одне поле прізвища може бути неактуальним. Наприклад, в Іспанії люди мають два прізвища, і вони використовують лише одне або обидва в залежності від ситуації.

Крім того, ви не повинні персоналізувати спілкування на основі ваших припущень, оскільки в деяких культурах вам може здатися грубим, коли телефонуєте людям за їх прізвищами, а у випадку інших - це може бути навпаки.

Також деякі культури роблять акцент на таких формах, як "пані" проти "пані", і вони також можуть поєднувати це слово з іменем або прізвищами, залежно від конкретного випадку.

Тож я б схилявся до рішення, коли у вас є поле єдиного імені та, можливо, додаткові поля, які користувач заповнює, підказуючи, як звернутися до користувача - щось подібне до того, що роблять багато авіакомпаній, купуючи квиток в Інтернеті. Це також може вирішити проблему розділення імен, якщо вам це потрібно для зовнішньої веб-служби, яку ви згадали.


1
Імовірно, якщо ви фактично локалізуєтесь, ви можете використовувати інший шаблон для різних мов
Casey

4

Якщо додати ще більше до того, що вказували @JanHudec та @KjMag, навіть у культурах / мовах, дуже близьких до англійської, це стає проблемою. Візьмемо для прикладу німецьку мову. У вас є поняття Vornamen, Імена, Nachnamen, Прізвища та Rufname, ім'я, яке ви називаєте. Візьмемо, наприклад, мого батька, він має 3 прізвища, у свідоцтві про його народження вони вказані у порядку Крістофа Стефана Андреаса. І у нього одне прізвище. Як ви думаєте, як звати його?

Правильна відповідь: Андреас. Це його Rufname, в Америці він ставить це як своє ім'я, щоб відповідати американському шаблону. Тож ви можете припустити, що в Німеччині останнє з ваших імен - це ім'я, якого ви називаєте, але тоді у вас є мій брат: Крістоф Себастьян Герберт Марія. (Тепер я віддав, що ми баварці) Або моя сестра Крістін Габріеле. Як ви думаєте, які імена вони називають? Себастьян і Христина відповідно.

Я б третій відповіді, які говорять одне поле для повного імені. І я до цього додам: можливо, додайте ще одне поле для Прізвища / Прізвища та поставте питання: за яким іменем Ви б були відсортовані у списку? І тоді заключне поле для: як ви хочете вирішити питання?


1
"Прізвище" - це лише інша назва "прізвища", а не буквально слово, яке з'являється останнім у послідовності. Прізвище Накаяма Таро - «Накаяма».
Кейсі

2
Щоб додати ще один випадок: мого діда називали "Антуан Ліндерт ван Іґен Шенау" => дане ім'я (а): "Антун Ліндерт"; називається: "Leen"; прізвище: "van Ingen Schenau" відсортувати під "Ingen". Ні ім'я виклику, ні правильне сортування не можуть бути легко виведені із запису імені / прізвища.
Барт ван Інген Шенау

1
@Casey відповідно до кого? в Японії це "верхнє ім'я", наприклад, не "прізвище".
eis

1
@eis У Японії це 名字. Але тут, в англомовному світі, "прізвище" - синонім "прізвища", а не буквально "останнє слово в чиїйсь послідовності імен".
Кейсі

1
@eis Я не впевнений, який момент ти хочеш зробити. Користувачі не знають різниці, якщо ви будете називати поле бази даних прізвище замість прізвища; одне - лише синонім другого. Якщо ви турбуєтеся про те, щоб представити програмне забезпечення не носіям англійської мови, це не має значення, оскільки і "прізвище", і "прізвище" - це англійські терміни, і ви повинні використовувати цей термін будь-якою мовою, для якої ви хочете локалізувати сторінку. Якщо ви стурбовані тим, що ви хочете, щоб люди, які не знають англійської, мали змогу користуватися англійською сторінкою, ну, це здається досить напівсерйозним способом вирішення фактичної проблеми.
Кейсі

-2

Якщо хтось збирається для глобальної програми, ймовірно, будемо моделювати ім’я людини як масив рядків. Наприклад, врахуйте ім’я президента у фільмі Ідіократія:

  • Гора Дуейн Ельзондо Герберт Камачо

Ось його повне ім’я. Назва містить 6 елементів у масиві. Для культури США перше ім’я є першим елементом у масиві (Dwayne), а прізвище - останнім елементом у масиві (Camacho). Але це не завжди так.

Можна застосувати специфічні для культури правила для визначення "першого" імені, якщо ім'я насправді є останнім елементом тощо, залежно від того, як імена працюють у різних культурах / локалях.

Також у випадку США є випадки, коли останній елемент не є прізвищем, наприклад:

  • Гора Дуейн Ельзондо Гербер Камачо-молодший

Тож, можливо, поле суфікса імені або треба було б розібрати останній елемент, шукаючи відомі суфікси на основі культури, щоб отримати правильне прізвище.

Отже, вам завжди краще зберігати ім’я в одному елементі (повне ім'я), а потім застосовувати проти нього рутину "стандартизації / санітарії" для розбору конкретних елементів у міру необхідності. Аналогічна стратегія існує і для адрес. Зазвичай вони збираються як один рядок, а потім надсилаються до служби для розбору деталей.


3
Одне поле, а потім "розбір" - це дійсно погана ідея. Розглянемо людину, прізвище якої "Старший": як ти це розбираєш? А як щодо "de la Jolla" як прізвища?
BobDalgleish

Я згадав розбір або ім'я поля Suffix. Якщо потрібне загальне рішення, знадобиться аналізатор імен, щоб ви могли обробляти кожен випадок, наприклад, "Старший" та "Де ла Джолла". Можна було б використовувати AI і навчити його розпізнавати імена. Б'юсь об заклад, якщо хтось годував його достатньо великим набором даних, він міг би розпізнати "де ла Джоллас" світу. Але це одне можливе рішення. Звичайно, можливий також збір дискретних деталей, але це має і мінуси.
Джон Рейнор
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.