Стандартный способ хранения имен в базе данных

Недавно я обдумывал имена и способ их хранения. Как правило, у человека будет первое, последнее и среднее имя. Если вы хотите быть особенно полным, вы можете добавить поле суффикса, возможно, даже поле заголовка. Поэтому, если кто-то хочет быть "Доктор Джон Q. Общественный III", они могут. Но у человека может быть более одного почетного и более одного суффикса. Если уж на то пошло, тогда могла бы быть и фамилия с переносом. Итак, что, если вы "Доктор Джон Квинт Максимус Public-Doe III Ph.D. MD. RPh."? Вы можете сделать:

лиц   PersonID   Префикс   Имя   Второе имя   Фамилия   Суффикс
PersonHonorifics   PHID   PersonID   почтительный
PersonNames   PANID   PersonID   NameOrder
Но тогда это становится медведем, с которым можно работать, и никто в любом случае не использует их.

Существует ли общепринятый "Стандартный способ" для хранения данных имени?

Ответ 1

Я предпочитаю стиль именования AD

First Name  givenName
Last Name   sn
Initials    initials
Display Name    displayName
Description description
Office  physicalDeliveryOfficeName
Telephone Number    telephoneNumber
Telephone: Other    otherTelephone
E-Mail  mail
Web Page    wWWHomePage
Web Page: Other url

Ответ 2

Иногда вы только думаете, что знаете свои требования. В издательском бизнесе есть информационный стандарт ONIX, который использует следующее. Интересно отметить, что имена First и Middle объединяются в одно поле.

  • Титулы перед именами (например: профессор, Его Королевское Высочество Принц, Сен)
  • Имена перед именами ключей (имена и/или средние инициалы - ex: Brendan J. E.)
  • Префикс к именам ключей (например: van, как в Людвиге ван Бетховене)
  • Имя ключа (фамилия)
  • Имена после имен ключей (например: Ибрагим, как в Анваре Ибрагиме)
  • Суффикс к именам ключей (например: Jr, III)
  • Квалификация и награды после имен ключей (например: MB, PhD)
  • Титулы после имен (например: герцог Эдинбургский)

Ответ 3

Стандартный способ - посмотреть ваши требования и сохранить необходимые данные. Хотя это интересная академическая проблема, правда, в десятках систем, над которыми я работал, обычно достаточно имени и фамилии. Иногда мы будем хранить средний начальный, но большую часть времени даже это не требуется.

Если у вас есть требование хранить все доктору Джону Квинту Максимусу Public-Doe III Ph.D. MD. RPh, тогда для этого вы создаете хранилище. Но до тех пор, пока ваша фамилия позволяет достаточно данных, доктор Максимус может набрать столько или меньше, сколько захочет, чтобы сохранить его имя и названия.

Ответ 4

Я бы начал с рассмотрения стандарта vCard; он нуждается в некоторой нормализации.

Ответ 5

Ниже приведена плохая идея (см. первый комментарий):

ПОЦЕЛУЙ! Освободите себя и просто используйте "FullName":-) (Если вам это нужно, последним словом в строке является "Lastname" )

Вы всегда можете использовать: Дорогое "Полное имя".

Как вы справляетесь с честностью, зависит от ваших требований и вашей аудитории. Вы могли бы получить "приветствие".

Ответ 6

Вы должны создать свой формат хранения, как вы ожидаете использовать данные. Если вам нужно знать разницу между первым именем (именами) и фамилией (именами), то для каждой колонки есть столбцы. Аналогичным образом, если вы (или ваш бизнес) заботитесь о суффиксах/префиксах/средних именах и т.д.... достаточно, чтобы хотеть использовать их определенным образом (например, рассылать спам всем клиентам, которые являются врачами), тогда для каждой колонки есть столбцы. Но если все, что вам нужно, это идентифицировать их в отчете или в приветствии по электронной почте, тогда рассмотрите более легкий подход: First_names, Last_Names и оставьте его на этом.

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

Ответ 7

По моему опыту обычно

  • Заголовок (как FK, ссылка на таблицу названий)
  • Имя, отчество
  • Отчество
  • Фамилия
  • Предыдущая фамилия (при необходимости, чтобы уловить имя для замужних женщин).
  • Суффикс

Все остальное имеет тенденцию быть чрезмерным (если это не требуется в вашем конкретном приложении) и болью для управления

Ответ 8

Если вы не имеете дело со специализированной группой людей, таких как врачи, где вам может понадобиться хранить все суффиксы таким образом, чтобы их было легко искать (мы часто ищем здесь профессиональный суффикс), вы можете хранить их либо в поле lastname или в отдельном поле суффикса (делает поиск всех людей с именем smith более надежным, если суффикс является отдельным полем). но с разделенным запятой списком. То же самое для префиксов. Я бы предположил, что первое имя, фамилия и имя middlename (Помогает различать дубликаты и без подачи, с меньшей вероятностью, чтобы его вставлять, даже если пользователь знает это), как правило, необходимы для правильного поиска и отправки данных. Я также предлагаю вычисленное поле, которое форматирует полное имя так, как вы хотите, чтобы оно отображалось в сообщениях электронной почты и т.д.