姓と名を別々にモデリングする


32

新しいシステムを設計する際に、誰かの名前を考慮すべきであり、人の名前を1つのフィールドとして保存するか、名/姓として別々に保存する必要がありますか?

単一フィールドの長所:

  • シンプルなUI
  • 非常に長い名前を持つ人の名前を入力しようとしてもあいまいさはありません(多くの場合、姓/名であることが明らかではありません。)
  • タイトルを処理する際の複雑さの軽減(「MD」または「Dr.」を入力するための別のフィールドは不要です)

スプリットフィールドの長所:

  • パーソナライズされたコミュニケーションは可能です「Dear Mr X」または「Dear Julie」
  • 消費されたWebサービスが姓/名を個別に必要とする場合、簡単に提供できます。
  • 厳格な身元確認要件のある業界(医療、政府など)に適した選択肢
  • 常に単一フィールドの代替に戻ることができるため、より安全な選択

あなたはどのご覧ください追加の上に一覧表示されていない引数を?

更新:問題は、ソリューションごとにどの追加(=質問にリストされていない)引数をリストできるかです。賛否両論の可能性の代わりに意見を述べることは、議論を間違った方向に進めると思います。各開発者はこの問題について決定する必要があります。この質問の目的は、必要に応じて評価できる重要な引数のリストを作成することです。


11
それらの名前で何をしようとしていますか?法的要件はありますか?ユーザー名の表示以外の結果はありますか?
ダークホッグ

9
Firstname / lastname distictionは、「Cher」のような名前が1つだけの人をサポートしていません。
ジャックB

77
次の記事を読むことをお勧めします。kalzumeus.com / 2010 / 06 / 17 / ...名前について考えるとき、それは本当に目を見張るものです。
ピーターB

10
User Experienceでこの質問をすることを検討するかもしれません。コミュニティは、この本質的にユーザーインターフェースの問題について異なる視点を提供できるかもしれません。
11684

9
@PieterBその記事のポイントのいくつかは疑わしく、時には物事を成し遂げるために仮定をしなければなりません。その記事は、名前の処理方法に関する有用なアドバイスを提供していません。名前にUnicode以外の文字が含まれている場合、どうしますか、ユーザーが写真をアップロードできるようにしますか?視覚的ではない側面がある場合-音声付きの動画を許可しますか?名前がパフォーマンスアートであり、香港の深夜にしか実行できない場合はどうなりますか?ある時点で、ユーザーベースが遭遇することのない理論的なコーナーケースを楽しむのではなく、現実になって問題を解決する必要があります。
モニカの

回答:


50

名と姓は有用な概念ではありません。名前は国によって異なります。ほとんどのアジア諸国では、姓が最初に書かれていますが、それでもソートに使用されています。したがって、姓に名前を付けると、ソートが間違っているか、姓になって表示されます。そして、アイスランドのように、姓をまったく使用せず、代わりに父親の名を使用する国があります。したがって、彼らは単に与えられた名前でソートします。

「名」と「姓」(または「姓」)という用語は、この点で優れていますが、絶対に必要な場合を除き、それらは避けます(パスポートなどの公式文書には必要があるため、必要です)それらは物事をより複雑にします。

  • パーソナライズされたコミュニケーションは可能です「Dear Mr X」または「Dear Julie」

指定された人を名、姓、または何で呼び出すかわからない場合を除きます。そして、対格のある言語を始めてはいけません。一般的に主格から対格を導き出すことはできません。いいえ、単に何を呼び出すかをユーザーに尋ねる方が良いでしょう。

  • 消費されたWebサービスが姓/名を個別に必要とする場合、簡単に提供できます。

の場合。別のサービスに依存している場合、その悪い選択に縛られています。独自の設計には利点がありません。

  • 厳格な身元確認要件のある業界(医療、政府など)に適した選択肢

いいえ、これは間違った選択です。公式文書では、一般に「名」と「姓」(または「姓」)という用語を使用しますが、これらはあいまいではありません。

  • 常に単一フィールドの代替に戻ることができるため、より安全な選択

実際、アジアの名前の曖昧さのために、あなたができることはそれほど明確ではありません。


2
アプリが世界のさまざまな地域で使用されている場合、フィールドラベルは、それらの組み合わせ/使用方法とともにローカライズする必要があります。
-JeffO

5
@JeffO、本当の問題は、最近では同じシステムに異なる国の人々がいる可能性が高いため、システムを作成し、異なる文化からの名前をそれに挿入する方法を見つける必要があることです。あなたが本当にそれを必要としない限り、そのウサギの穴に入らないでください。
ジャン・ヒューデック

4
@IstvanDevaiは、カリフォルニア州で、信用法が「姓」を要求しているために契約が無効であると宣言された訴訟がありました。その人は二重のヒスパニック系の姓を持っていましたが、姓を尋ねられたとき、最初の(父方の)姓が与えられました。これは一般的です。契約上の名前が彼の「姓」ではないため、つまり相手のフルネームの末尾にあるため、相手方は回収事件を失いました。最初/最後が混乱を招く方法の例であり、名/姓の完全な同義語ではありません。

6
@Casey-ミドルネームは名フィールドに含める必要があります。これは、ミドルネームがセカンダリ名であるためです。ミドルネームを持たないヒスパニック系の人を見かけたが、二重姓がミドルネームフィールドに最初の(そして最も重要な)姓を押し込んでいるたびにドルを持っていたら、私はすでに退職していました。あなたが人を呼ぶものを知りたい場合は、名前とは別に、そのためのフィールドを持っています。その後、バーソロミューフランクエドワードスミスウェリントンは、それらをバートと呼ぶように言うことができます。私たちは英語を話すかもしれませんが、ここには非英語圏の人々がいます。彼らの名前も入力されます。

4
-1。答え自体は完全に間違っているわけではありませんが、当面の質問にはあまり意味がありません。OPは、人間の名前に1つまたは2つのフィールドを使用するための引数を探します。「first / last」または「given / sur」と呼ばれるかどうかは焦点ではなく、OPが念頭に置いたラベルにすぎません。他のすべての点は非常に私には思える独断、および大規模な顧客のためのアプリケーションを作成およびデプロイと私の個人的な経験では、OPの仮定は完全に正常であるとだけ起こるのか、そのように。この答えは、質問のパラメーターを排除しようとしているだけです。
AnoE

31

重要な唯一の議論は、システムの要件何ですか?

1つの文化にのみ対処する必要がありますか?その場合は、その文化に準拠します。そうでなければ、国際化の計画を立てる(他の人が指摘したように)。

政府のフォーム、医療、またはその他の法的/システム要件に対処するためのデータを取得する必要がありますか?それらが指示するものは何でも従ってください。それが姓と名を意味する場合、それを行います。別の何かを意味する場合は、それを行います。

名前と姓のAPIの要件はありますか(または、YAGNIを無視するのに十分な合理的な可能性がありますか)?そこで意味のあることをしてください。

パーソナライズされたコミュニケーションが必要な場合、好みの名前を誰かに尋ねて保存するのが妥当ですか?

システムの要件によって、何をするかが決まります。必要なことを行い、残りはYAGNIです。


7
もう「一つの文化」というものはありません。最小のコミュニティでさえ、文化的規範と言語が混在しています。
-BobDalgleish

7
@BobDalgleish本当ですが、問題ではない場合もあります。複数の文化をサポートするためのコストが原因で、ビジネスマンはノーと言うことがあります。
ベカズ

9
@BobDalgleishおそらく、アプリケーションが開発されている市場で支配的な文化はどれですか?私はこれが実際にそのような神秘的またはまれであるとは思わない。
ケーシー

3
@BobDalgleish-「文化」は無関係です。あなたが文書を発行されるとき、誰もあなたの文化について尋ねません。セルビアのみをサポートする必要がある場合(現時点では)、この国で発行されるすべての文書に定義されている姓と名を含めます。あなたの文化が何であるかは関係ありません。パスポート、運転免許証などには、姓と名、期間があります。
DavorŽdralo

2
@icirellikどうしたの?宇宙を完全にモデル化しようとしている場合、それらのもの(長さの制限など)は間違っていますか?確かに。しかし、私は宇宙を完璧にモデル化するよう求められたことは一度もありません。クリンゴン語の名前を説明しますか?いいえ。でも、なぜですか?誰かがいつかそれをするかもしれない(誰かがそれを今やったとしても、私は正直に驚かないだろう)。しかし、あなたのモデルではうまくいかないことがいくつかあることをあなたが知っているという点があります。そして、あらゆる可能性を処理するための余分な開発時間は、それだけの価値はありません。(続き...)
Becuzz

5

名前を表示および/または利用する方法が複数ある場合は、おそらく個別のフィールドが必要になります。データ入力とともに、フィードバックを提供して、ユーザーにデータの利用方法を示すことができます。それらをどのように組み合わせるかは、将来的に単一のフィールドに変換することにつながる可能性があります。

表示するラベルがあります:挨拶または表示名:名+姓整理/並べ替え:姓、名

これが将来どのように使用されるかわからないときは、分割名から始めて、それが本当に必要なことに気づいたときにそれらを単一のフィールドに結合することができます。単一の名前フィールドを姓と名に分割するアルゴリズムを作成するのは難しいということではありませんが、いくつかの間違いを犯すことになり、人々は名前の間違いを嫌います。分割フィールドを使用すると、ユーザーは名前の使用方法を確認したときに名前の入力方法を調整できます。それらを永続的な単一の名前フィールドに結合することは、それほど危険ではありません。


5

私は@JanHudecが言ったことの多くに同意しますが、それについて少し拡張したいと思います。

  • 実際の要件が何であるかを知る必要がありますが、情報を再結合してから分割するよりも、情報を結合する方が簡単です。
  • ルールはロケールや文化によって異なる可能性があるため、ソートは常に課題となります。
  • 多くの文化はあなたのものと一致しません、それは悪い仮定につながります。(これは1月の最大のポイントです)

用語は重要です

以下のような用語与えられた名前家族の名前はセマンティックな意味を持っており、データベースは常にあなたのデータの意味を反映すべきです。などの用語には、通常、名前の仕組みに関する英語とアメリカの考え方に基づいた位置的な意味があります。データのセマンティクスに適切な用語を使用します。

それをどこまで分解する必要がありますか?

タイトル(Mr. Dr. Mrs.など)または序数(Jr.、Sr.、IIIなど)の概念があり、さらに認定(PhD、MS、PCAMなど)もあります。コンテキストと目的。

多くのロケールには、複数の姓(父方および母方)の概念があり、一部のロケールにはありません。フォームに記入する際、使用する名前を厳密に選択しなければならない場合があります。たとえば、アメリカ形式の「姓」に父方の姓を使用したり、父親の名前に基づいて姓を見つけたりする場合(Janson )。

アメリカでは1つまたは複数のミドルネームを持っていることが一般的ですが、家族の外ではしばしば無視されます。

仕分け

ソート名専用のフィールドを用意すると便利です。そうすることで、レコードを作成するときにルールを明確にすることができます。また、国際的な境界を越えて正しい順序で名前がソートされるようにします。

一般的な慣行

実際の要件により、名前についてどの程度正確である必要があるかが決まります。政府または銀行のWebサイトを作成している場合、Facebookのような非公式なものよりも、名前の保存と処理に関する要件が多くなります。

非公式のガイドライン

  • ユーザーがどのように知られたいかを説明するフィールドを1つ持つ
  • 並べ替えと表示はその1つの名前を使用します

準公式ガイドライン

  • ニックネーム、またはユーザーの対処方法を入力するフィールドが1つあります
  • 2つのフィールドがあり、1つは名、もう1つは姓(姓はオプション)
  • ロケールと名/姓のコンボに基づいてソートフィールドを計算する
  • ユーザーに直接アドレス指定するときにニックネームを使用します
  • 人をリストするときに正式な名前を使用する

正式なガイドライン

  • これらは、サポートしているエンティティの既存のポリシーと手順によって決まります
  • サポートする名前部分の最大数と同じ数のフィールドが必要であり、それらが何であるかを意味的に命名します。
  • セミフォーマルの場合のようにソートを処理するソートフィールドを含める
  • また、表示は通常、既存のポリシーと手順によって決定されます。それらに慣れる必要があります。

ダウンボーターは、詳しく説明しますか?おそらく私は何かを見逃したのですか?
ベリンロリチュ

これは私にとって包括的であり、ここで与えられた最も実用的なアドバイスのようです。
ジェシークラーク

4

@JanHudecが指摘したことと、私が同意することは別として、多くの国では人が複数の姓を持っているため、1つの姓フィールドは無関係かもしれません。たとえば、スペインでは、姓は2つあり、状況に応じてどちらか一方または両方を使用します。

一部の文化では、姓で人を呼ぶときは失礼に思えるかもしれないし、他の場合は反対になるかもしれないので、あなたの仮定に基づいてコミュニケーションをパーソナライズしてはいけません。

また、一部の文化では「Mrs」と「Ms」のような形式に重点を置いており、特定のケースに応じてこの単語と名または姓を組み合わせることもあります。

したがって、単一の名前フィールドと、おそらくユーザーがユーザーに向けるヒントを入力する追加フ​​ィールドを持つソリューションに傾倒します。これは、多くの航空会社がオンラインでチケットを購入するときのようなものです。これにより、言及した外部Webサービスに名前が必要な場合に名前を分割する方法の問題も解決される場合があります。


1
おそらく、実際にローカライズしている場合は、異なる言語に異なるテンプレートを使用できます
ケーシー

4

@JanHudecと@KjMagが指摘したことをさらに追加すると、英語に非常に近い文化/言語であっても、これが問題になります。たとえば、ドイツ語を考えてください。Vornamen、名、Nachnamen、姓、Rufnameという名前の概念があります。私の父を例にとると、彼には3つの名があり、出生証明書にはChristoph Stephan Andreasの順にリストされています。そして彼には姓があります。彼は何と呼ばれていますか?

正解:アンドレアス。それが彼のRufnameであり、アメリカではアメリカのテンプレートに合うように彼のファーストネームとしてそれを置きます。ドイツでは、姓の最後の名前はあなたが呼ばれた名前であると仮定するかもしれませんが、私の兄弟はクリストフ・セバスチャン・ハーバート・マリアです。(今、私たちはバイエルン人です)または妹のクリスティン・ガブリエレ。彼らは何と呼ばれる名前だと思いますか?それぞれセバスチャンとクリスティン。

私は、フルネームの1つのフィールドを言う答えを3番目にします。それに追加します:姓/姓に別のフィールドを追加して質問を投げる:リスト内でどの名前でソートされますか?そして最後のフィールド:どのように対処したいですか?


1
「姓」は「姓」の単なる別の名前であり、文字通り、最後に現れる単語ではありません。中山太郎の苗字は「中山」です。
ケーシー

2
別のケースを追加するには:私の祖父は "Antoon Leendert van Ingen Schenau"と呼ばれていました=>名: "Antoon Leendert"; 呼ばれる:「リーン」; 姓:「van Ingen Schenau」は「Ingen」の下にソートされます。発信者名も正しい並べ替えも、名/姓のエントリから簡単に導き出すことはできません。
バートヴァンインゲンシェナウ

1
誰によると@Casey?日本では、「姓」ではなく、「名前」です。
eis

1
@eis日本ではそれは名字です。しかし、ここでは英語圏では、「姓」は「姓」の同義語であり、文字通り「誰かの名前のシーケンスの最後の単語」ではありません。
ケーシー

1
@eisあなたが何を言いたいのか分かりません。姓の代わりにデータベースフィールドlast_nameを呼び出すと、ユーザーは違いを知りません。一方は他方の同義語です。あなたの懸念が英語以外の話者にソフトウェアを提示する場合、「姓」と「姓」の両方が英語の用語であり、ページをローカライズするためにあなたが意味する言語で用語を使用する必要があるため、それは無関係です。もし懸念が英語を知らない人が英語のページを使えるようにしたいなら、それは実際の問題に対処するかなり中途半端な方法のように思えます。
ケーシー

-2

グローバルアプリケーションを使用する場合は、おそらく人の名前を文字列の配列としてモデル化します。たとえば、映画のイディオクラシーで大統領の名前を考えてみましょう。

  • ドウェインエルゾンドマウンテンデューハーバートカマチョ

それが彼のフルネームです。名前の配列には6つの要素が含まれています。米国文化の場合、名は配列の最初の要素(Dwayne)であり、姓は配列の最後の要素(Camacho)です。しかし、常にそうとは限りません。

名が異なる文化/ロケールでどのように機能するかに応じて、名が実際に最後の要素である場合など、「名」を決定する文化固有のルールを適用できます。

また、米国の場合、次のような最後の要素が姓ではない場合があります。

  • ドウェインエルゾンドマウンテンデューハーバートカマチョジュニア

そのため、名前のサフィックスフィールドか、カルチャに基づいて既知のサフィックスを探す最後の要素を解析して、正しいラストネームを取得する必要があります。

そのため、名前を1つの要素(フルネーム)に保存し、それに対して「標準化/衛生」ルーチンを適用して、必要に応じて特定の要素を解析する方が良いでしょう。住所についても同様の戦略が存在します。通常、これらは1つの文字列として収集され、パーツを解析するためにサービスに送信されます。


3
単一フィールドに続いて「構文解析」するのは本当に悪い考えです。姓が「シニア」である人を考えてみましょう。どのように解析しますか?姓としての「de la Jolla」はどうですか?
-BobDalgleish

解析または名前のサフィックスフィールドについて言及しました。一般的なソリューションが必要な場合は、名前のパーサーが必要になるため、「Senior」や「de la Jolla」などの各ケースを処理できます。AIを使用して、名前の認識方法をトレーニングできます。世界の「デラジョラス」を認識できるほど十分に大きなデータセットを与えた場合は間違いないでしょう。しかし、それは可能な解決策の1つです。確かに個別の部品を収集することも可能ですが、それには欠点があります。
ジョンレイナー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.