Modelando nome e sobrenome separadamente

32

Quais argumentos alguém deve considerar ao projetar um novo sistema e deve armazenar o nome de uma pessoa como um campo ou separadamente como nome / sobrenome?

Prós para campo único:

  • UI mais simples
  • Nenhuma ambiguidade ao tentar digitar o nome de uma pessoa que tem um nome muito longo (geralmente não é evidente qual é o sobrenome / primeiro nome ..)
  • Menos complexidade ao lidar com títulos (por exemplo, não é necessário campo separado para inserir "MD" ou "Dr.")

Prós para campo dividido:

  • Comunicação personalizada é possível "Prezado Sr. X" ou "Prezada Julie"
  • Se um serviço da Web consumido precisar do nome / sobrenome separadamente, ele poderá ser fornecido facilmente.
  • Melhor escolha para qualquer setor com requisitos rígidos de identificação (por exemplo, médico, governo etc.)
  • Escolha mais segura, pois você sempre pode voltar para a alternativa de campo único

Você vê algum argumento adicional que não está listado acima?

Atualização: a pergunta é: quais argumentos adicionais (= não listados na pergunta) podem ser listados para cada solução. Acho que dar opiniões em vez de possíveis prós e contras direciona a discussão da maneira errada. Cada desenvolvedor deve tomar sua decisão sobre esse problema, o objetivo desta pergunta é montar uma lista de argumentos não triviais que podem ser avaliados, se necessário.

Istvan Devai
fonte
11
O que você está tentando fazer com esses nomes? Você tem requisitos legais? Existe alguma consequência além da exibição para o nome do usuário?
Darkhogg 01/08/19
9
A separação de nome / sobrenome não suporta pessoas com apenas um nome como "Cher".
precisa saber é o seguinte
77
Eu aconselho você a ler o seguinte artigo: kalzumeus.com/2010/06/17/… é um verdadeiro abridor de olhos quando se pensa em nomes.
Pieter B
10
Você pode fazer essa pergunta na Experiência do usuário ; a comunidade pode oferecer uma perspectiva diferente sobre esse problema essencial da interface do usuário.
11684
9
@PieterB Alguns dos pontos desse artigo são questionáveis ​​e, às vezes, você precisa fazer suposições para fazer as coisas. Esse artigo não fornece conselhos úteis sobre como lidar com nomes. Se um nome contém caracteres não unicode, o que você faz, permite ao usuário fazer upload de uma imagem? E se houver aspectos não visuais - permitir um vídeo com som? E se um nome for performance art e só puder ser apresentado à meia-noite em Hong Kong? Em algum momento, você precisa ser real e resolver problemas, em vez de se divertir com casos teóricos que sua base de usuários nunca encontrará.
Reponha Monica em

Respostas:

50

Nome e sobrenome não são conceitos úteis. Os nomes funcionam de maneira diferente em diferentes países. Na maioria dos países asiáticos, o nome da família é escrito primeiro, mas ainda é usado para classificação - portanto, você pode colocá-lo em primeiro nome e a classificação estará incorreta ou em sobrenome e a exibição será. E existem países como a Islândia, onde eles não usam nomes de família, mas o nome do pai. Então eles simplesmente classificam pelo nome.

Os termos “nome próprio” e “sobrenome” (ou “sobrenome”) são melhores nesse aspecto, mas eu ainda os evitaria a menos que seja absolutamente necessário (ou seja, documentos oficiais como passaportes os possuem, então você precisa deles), porque eles apenas tornam as coisas mais complicadas.

  • Comunicação personalizada é possível "Prezado Sr. X" ou "Prezada Julie"

Exceto que você não tem idéia se deve ligar para determinada pessoa pelo nome ou sobrenome ou o quê. E não me inicie nas línguas acusativas - você não pode derivar acusações de nominativas em geral. Não, é melhor se você simplesmente perguntar ao usuário como chamá-lo.

  • Se um serviço da Web consumido precisar do nome / sobrenome separadamente, ele poderá ser fornecido facilmente.

Se . Se você depende de outro serviço, está bloqueado para as más escolhas. Não é uma vantagem para seus próprios projetos.

  • Melhor escolha para qualquer setor com requisitos rígidos de identificação (por exemplo, médico, governo etc.)

Não, é uma escolha errada para eles. Os documentos oficiais geralmente usam os termos “nome próprio” e “sobrenome” (ou “sobrenome”), que são menos ambíguos.

  • Escolha mais segura, pois você sempre pode voltar para a alternativa de campo único

Na verdade, devido à ambiguidade dos nomes asiáticos, não é tão claro que você pode.

Jan Hudec
fonte
2
Se o aplicativo for usado em diferentes partes do mundo, os rótulos dos campos precisarão ser localizados junto com a forma como são combinados / usados.
JeffO 01/08/19
5
@JeffO, a verdadeira questão é que hoje em dia é provável que você tenha pessoas de diferentes países no mesmo sistema, então você precisa criar um sistema e encontrar uma maneira de inserir nomes de diferentes culturas nele para que funcione razoavelmente de forma consistente . Não entre na toca do coelho, a menos que você realmente precise.
Jan Hudec
4
@IstvanDevai, houve um caso legal na Califórnia em que um contrato foi declarado nulo porque as leis de crédito exigiam "sobrenome". A pessoa tinha um sobrenome hispânico duplo, mas, quando perguntado pelo sobrenome, foi dado o primeiro sobrenome (paterno), o que é comum. A outra parte perdeu o processo de cobrança porque o nome do contrato não era o "sobrenome" dele, ou seja, o nome do final do nome completo. Um exemplo de como o primeiro / o último convida à confusão e não é totalmente sinônimo de nomes / sobrenomes.
6
@ Casey - os nomes do meio devem ser incluídos no campo de nomes, porque é isso que são: nomes secundários. Se eu tivesse um dólar por cada vez que vi uma pessoa hispânica sem nome do meio, mas um sobrenome duplo receber seu primeiro (e mais importante) sobrenome no campo do nome do meio, eu já estaria aposentado. Se você quiser saber como chamar uma pessoa, tenha um campo para isso, separe-o do nome. Então Bartholomew Frank Edward Smith Wellington pode pedir para você chamá-los de Bart. Podemos falar inglês, mas há pessoas de lugares que não falam inglês e seus nomes também são inseridos.
4
-1. Embora a resposta em si não esteja totalmente errada, ela não faz muito sentido para a pergunta em questão. O OP procura mais argumentos para usar um campo ou dois campos para nomes humanos. Se é chamado "primeiro / último" ou "dado / sur" não é o foco, são apenas os rótulos que o OP tinha em mente. Todos os outros pontos me parecem muito opinativos e, na minha experiência pessoal na criação e implantação de aplicativos para grandes clientes, as suposições do OP são completamente normais e acontecem dessa maneira. Esta resposta tenta apenas afastar os parâmetros da pergunta.
AnoE
31

O único argumento que importa é quais são os requisitos do seu sistema?

Você precisa lidar com apenas uma cultura? Se assim for, em conformidade com essa cultura. Caso contrário, planeje a internacionalização (como outros já apontaram).

Você precisa obter dados para lidar com formulários governamentais, assistência médica ou outros requisitos legais / do sistema? Siga o que quer que ditem. Se isso significa nome e sobrenome, faça-o. Se isso significa algo diferente, faça isso.

Você tem um requisito para uma API com nome e sobrenome (ou é razoavelmente provável, suficiente para justificar a ignorância do YAGNI)? Faça o que faz sentido lá.

Se você precisar de comunicações personalizadas, é razoável perguntar a alguém seu nome preferido e armazená-lo?

Os requisitos do seu sistema devem determinar o que você faz. Faça o que você precisa e YAGNI o resto.

Becuzz
fonte
7
Não existe mais uma "cultura". Até as comunidades menores têm normas e idiomas culturais misturados.
BobDalgleish
7
@BobDalgleish True, mas às vezes isso não importa. Às vezes, o custo de apoiar várias culturas faz com que os empresários simplesmente digam não.
Becuzz
9
@BobDalgleish Presumivelmente, qual cultura é dominante no mercado para o qual o aplicativo está sendo desenvolvido? Eu não acho que isso seja realmente misterioso ou raro.
Casey
3
@BobDalgleish - "cultura" é irrelevante. Ninguém pergunta sobre sua cultura quando você recebe documentos. Se eu precisasse apoiar apenas a Sérvia (onde estou no momento), incluiria o nome e o sobrenome, conforme definidos em todos os documentos emitidos neste país, e é isso. Não importa qual é a sua cultura. Seu passaporte, carteira de motorista, etc. terão nome e sobrenome, período.
Davor Ždralo
2
@icirellik Errado de que maneira? Essas coisas (limites de comprimento etc.) estão erradas se você estiver tentando modelar perfeitamente o universo? Certamente. Mas nunca me pediram para modelar perfeitamente o universo e todas as formas possíveis de alguém escolher um nome. Eu respondo pelos nomes Klingon? Não. Mas por que não? Alguém pode fazer isso algum dia (honestamente, não me surpreenderia se alguém fizesse isso agora). Mas chega um momento em que você simplesmente sabe que haverá algumas coisas que simplesmente não funcionarão com o seu modelo. E o tempo extra de desenvolvimento para lidar com todas as possibilidades simplesmente não vale a pena. (cont ...)
Becuzz 02/08
5

Se você tiver mais de uma maneira de exibir e / ou utilizar o (s) nome (s), provavelmente precisará de campos separados. Junto com a entrada de dados, você pode fornecer feedback para mostrar ao usuário como ele será utilizado. Como você os combina, pode levar à conversão em um único campo no futuro.

Tem algumas etiquetas que mostram: Saudação ou Nome para exibição: Nome + Sobrenome Organização / Classificação: Sobrenome, Nome

Quando não tiver certeza de como isso será usado no futuro, comece com nomes divididos e, em seguida, você poderá combiná-los em um único campo quando perceber que é tudo o que realmente precisa. Não é difícil escrever um algoritmo para dividir um único campo de nome em nome e sobrenome, mas você cometerá alguns erros e as pessoas realmente não gostam de erros com seus nomes. Com campos divididos, os usuários podem ajustar a forma como inserem seu nome quando veem como ele é usado. Combiná-los em um campo permanente de nome único é menos arriscado.

JeffO
fonte
5

Eu concordo com muito do que o @JanHudec disse, embora eu gostaria de expandir um pouco isso:

  • Você precisa saber quais são seus requisitos reais, mas é mais fácil combinar informações do que separá-las quando combinadas novamente.
  • A classificação sempre será um desafio, pois as regras podem diferir entre localidades e culturas.
  • Muitas culturas não correspondem à sua, o que leva a más suposições. (Este é o maior ponto de janeiro)

A terminologia é importante

Termos como determinado nome e sobrenome ou nome de família têm significado semântico, e seu banco de dados deve sempre refletir a semântica de seus dados. Termos como nome e sobrenome têm significado posicional, geralmente com base nas idéias inglesas e americanas de como os nomes funcionam. Use a terminologia apropriada para a semântica dos seus dados.

Quão longe você precisa quebrá-lo?

Existem conceitos de título (Sr. Dra. Sra. Etc.) ou ordinal (Jr., Sr., III, etc.) e até certificações (PhD, MS, PCAM, etc.) que podem ser importantes dependendo do contexto e propósito.

Muitas localidades têm o conceito de vários nomes de família (paternos e maternos), e algumas não. Ao preencher formulários, às vezes as pessoas precisam fazer escolhas difíceis sobre qual nome usar, por exemplo, usando o nome de família paterno para o "sobrenome" em um formulário americano ou inventando um sobrenome com base no nome do pai (Janson )

Enquanto na América é comum ter um ou mais nomes do meio, geralmente é ignorado fora da sua família.

Classificação

Ajuda a ter um campo dedicado para o nome da classificação. Dessa forma, você pode desambiguar as regras ao criar o registro. Também garante que os nomes sejam classificados na ordem correta através dos limites internacionais.

Práticas Comuns

Seus requisitos reais determinam o quão correto você precisa ser sobre nomes. Se você estiver criando um site governamental ou bancário, terá mais requisitos para armazenar e manipular nomes do que algo informal como o Facebook.

Diretrizes informais

  • Tem um campo que descreve como o usuário deseja ser conhecido
  • Classificar e exibir usa esse nome

Diretrizes Semi-Formais

  • Possui um campo para um apelido ou como o usuário deseja ser endereçado
  • Tenha dois campos, um para o nome e outro para o sobrenome (o sobrenome deve ser opcional)
  • Calcular um campo de classificação com base na localidade e na combinação fornecida / sobrenome
  • Use o apelido ao endereçar o usuário diretamente
  • Use o nome formal ao listar pessoas

Diretrizes formais

  • Estes são ditados pelas políticas e procedimentos existentes para a entidade que você está apoiando
  • Você precisa de tantos campos quanto o número máximo de partes de nome que você apoiará, nomeadas semanticamente para o que são.
  • Inclua um campo de classificação que lide com a classificação como faria no caso semi-formal
  • A exibição também é geralmente ditada pelas políticas e procedimentos existentes. Você precisa se familiarizar com eles.
Berin Loritsch
fonte
O downvoter se importaria em elaborar? Talvez eu tenha perdido alguma coisa?
Berin Loritsch 2/17/17
Parece-me abrangente e o conselho mais pragmático dado aqui.
Jesse Clark
4

Além do que o @JanHudec apontou e com o qual eu concordo, também vale a pena notar que em muitos países as pessoas têm mais de um sobrenome, portanto, um único campo de sobrenome pode ser irrelevante. Por exemplo, na Espanha, as pessoas têm dois sobrenomes e usam apenas um ou ambos, dependendo da situação.

Além disso, você não deve personalizar as comunicações com base em suas suposições, pois em algumas culturas você pode parecer rude ao chamar as pessoas pelo sobrenome e, no caso de outras, pode ser o contrário.

Além disso, algumas culturas enfatizam formas como 'Sra' vs 'Sra' e também podem combinar essa palavra com nomes ou sobrenomes, dependendo de um caso específico.

Então, eu me inclinaria para uma solução em que você tenha um campo de nome único e talvez campos adicionais que o usuário preencha para sugerir como procurar o usuário - algo semelhante ao que muitas companhias aéreas fazem quando você compra um bilhete online. Isso também pode resolver o problema de como dividir os nomes, se você precisar dele para um serviço da web externo que você mencionou.

KjMag
fonte
1
Presumivelmente, se você está realmente localizar você pode usar um modelo diferente para diferentes idiomas
Casey
4

Para adicionar ainda mais o que @JanHudec e @KjMag apontaram, mesmo em culturas / idiomas muito próximos ao inglês, isso se torna um problema. Veja o alemão, por exemplo. Você tem o conceito de Vornamen, Nomes, Nachnamen, Sobrenomes e Rufname, o nome que você chama. Pegue meu pai, por exemplo, ele tem três nomes, na certidão de nascimento estão listados na ordem Christoph Stephan Andreas. E ele tem um sobrenome. Como você acha que o nome dele é chamado?

A resposta correta: Andreas. Esse é o seu nome Ruf, na América ele o coloca como seu primeiro nome para se encaixar no modelo americano. Então, você pode supor que na Alemanha o sobrenome é o nome que você chama, mas então você tem meu irmão: Christoph Sebastian Herbert Maria. (Agora eu doei que somos bávaros) Ou minha irmã Christine Gabriele. Na sua opinião, quais são os nomes que eles chamam? Sebastian e Christine, respectivamente.

Gostaria de terceirizar as respostas que dizem um campo para um nome completo. E eu acrescentaria a isso: talvez adicione outro campo para um sobrenome / nome de família e faça a pergunta: por qual nome você seria classificado em uma lista? E então um campo final para: como você deseja ser abordado?

Hangman4358
fonte
1
"Sobrenome" é apenas outro nome para "sobrenome", não literalmente a palavra que aparece por último em sequência. O sobrenome de Nakayama Taro é "Nakayama".
Casey
2
Para adicionar outro caso: Meu avô se chamava "Antoon Leendert van Ingen Schenau" => nome (s) próprio (s): "Antoon Leendert"; chamado: "Leen"; nome de família: "van Ingen Schenau" a ser classificado em "Ingen". Nem o nome de chamada nem a classificação correta podem ser derivados facilmente de uma entrada de nome / sobrenome.
Bart van Ingen Schenau
1
@ Casey de acordo com quem? no japão, é "nome superior", por exemplo, não "sobrenome".
eis
1
@eis No Japão é 名字. Mas aqui no mundo de língua inglesa, "sobrenome" é sinônimo de "sobrenome" e não literalmente "a última palavra na sequência de nomes de alguém".
Casey
1
@eis Não sei ao certo o que você quer dizer. Os usuários não saberão a diferença se você chamar o campo do banco de dados last_name em vez do sobrenome; um é apenas sinônimo do outro. Se sua preocupação é apresentar o software para quem não fala inglês, isso é irrelevante, pois "sobrenome" e "sobrenome" são termos em inglês e você deve usá-lo no idioma que desejar para localizar a página. Se a preocupação é que você quer que as pessoas que não conhecem o inglês possam usar a página em inglês, bem, isso parece uma maneira bastante tímida de abordar o problema real.
Casey
-2

Se alguém está indo para um aplicativo global, provavelmente modelaria o nome de uma pessoa como uma matriz de seqüências de caracteres. Por exemplo, considere o nome do presidente no filme Idiocracia:

  • Orvalho da montanha de Dwayne Elzondo Herbert Camacho

Esse é o nome completo dele. O nome contém 6 elementos na matriz. Para a cultura dos EUA, o primeiro nome é o primeiro elemento da matriz (Dwayne) e o sobrenome é o último elemento da matriz (Camacho). Mas isso nem sempre é o caso.

Pode-se aplicar regras específicas de cultura para determinar o nome "primeiro" se o primeiro nome é realmente o último elemento e assim por diante, dependendo de como os nomes funcionam em diferentes culturas / localidades.

Além disso, no caso dos EUA, temos casos em que o último elemento não é o sobrenome, como:

  • Orvalho da montanha de Dwayne Elzondo Herbert Camacho Jr.

Portanto, talvez um campo de sufixo de nome ou alguém precise analisar o último elemento procurando sufixos conhecidos com base na cultura para obter o sobrenome correto.

Portanto, é sempre melhor armazenar o nome em um elemento (O nome completo) e depois aplicar uma rotina de "padronização / saneamento" para analisar os elementos específicos conforme necessário. Uma estratégia semelhante existe para endereços. Eles geralmente são coletados como uma sequência e depois enviados para um serviço para analisar as peças.

Jon Raynor
fonte
3
Campo único e, em seguida, "analisar" é uma péssima idéia. Considere uma pessoa cujo sobrenome seja "Sênior": como você analisa isso? Que tal "de la Jolla" como sobrenome?
BobDalgleish
Mencionei a análise ou o nome de um campo Sufixo. Se uma solução genérica for necessária, será necessário um analisador de nomes para que você possa lidar com cada caso como "Senior" e "de la Jolla". Pode-se usar a IA e treiná-la para reconhecer nomes. Aposto que, se alguém fornecesse um conjunto de dados grande o suficiente, seria capaz de reconhecer os "de la Jollas" do mundo. Mas essa é uma solução possível. Certamente também é possível coletar peças discretas, mas isso tem suas desvantagens.
22416 Jon Jonnor