新しいシステムを設計するときに誰かが考慮すべき引数はどれですか。人の名前を1つのフィールドとして保存するか、姓名として個別に保存する必要がありますか。
単一分野の長所:
分割フィールドの長所:
上記にリストされていない追加引数がありますか?
更新:問題は、どのソリューションに対して追加(=質問にリストされていない)引数をリストできるかです。賛否両論ではなく意見を述べると、議論が間違った方向に進むと思います。各開発者はこの問題について自分の決定を下す必要があります。この質問の目的は、必要に応じて評価できる重要な引数のリストを作成することです。
名と姓は有用な概念ではありません。名前は国によって異なる働きをします。ほとんどのアジアの国では、姓が最初に書かれますが、それでも並べ替えに使用されます。つまり、姓で並べ替えると、並べ替えが誤ったり、姓で表示されたりします。そして、アイスランドのように、姓をまったく使用せず、父親の名を使用する国もあります。したがって、指定された名前で並べ替えるだけです。
この点では、「名」と「姓」(または「姓」)という用語の方が適していますが、絶対に必要な場合(つまり、パスポートなどの公式文書にあるため、必要になります)を除いて、これらは避けます。それらは物事をより複雑にするだけです。
- パーソナライズされたコミュニケーションが可能「Dear Mr X」または「Dear Julie」
あなたが与えられた人を彼らの名、姓、または何で呼ぶべきかわからない場合を除いて。そして、私が対格を持つ言語について始めないでください。あなたはできない一般的に、主格から対格を導き出します。いいえ、単にユーザーに何を呼び出すかを尋ねた方がよいでしょう。
- 使用するWebサービスで姓名が個別に必要な場合は、簡単に提供できます。
If。別のサービスに依存している場合、あなたは彼らの悪い選択に縛られています。独自の設計にはメリットがありません。
- 厳格な識別要件(医療、政府など)を持つあらゆる業界に適した選択肢
いいえ、これは間違ったの選択です。公式文書では一般に、あいまいさの少ない「名」と「姓」(または「姓」)という用語を使用します。
- 常に単一のフィールドの選択肢に戻ることができるため、より安全な選択
実際、アジアの名前のあいまいさのために、あなたができることはそれほど明確ではありません。
重要な唯一の議論はシステムの要件は何ですか?
1つの文化だけを扱う必要がありますか?もしそうなら、その文化に準拠してください。それ以外の場合は、国際化を計画します(他の人が指摘したとおり)。
政府のフォーム、ヘルスケア、その他の法的/システム要件に対応するためにデータを取得する必要がありますか?それらが指示するものは何でもフォローしてください。それが姓名を意味する場合は、それを行います。それが別のことを意味する場合は、それを行います。
姓と名のAPIの要件はありますか(または、YAGNIを無視するのに十分なほど妥当か)そこで意味のあることをしてください。
パーソナライズされたコミュニケーションが必要な場合は、誰かに自分の好きな名前を尋ねて保存するのが合理的ですか?
システムの要件によって、実行する内容が決まります。あなたがしなければならないことを行い、残りはYAGNIです。
名前を表示および/または利用する方法が複数ある場合は、おそらく別々のフィールドが必要になります。データ入力とともに、フィードバックを提供して、それがどのように利用されるかをユーザーに示すことができます。それらをどのように組み合わせると、将来、単一のフィールドに変換される可能性があります。
次のようなラベルを付けます:あいさつまたは表示名:名+姓整理/分類:姓、名
これが将来どのように使用されるかわからないときは、分割名から始めて、本当に必要なすべてだとわかったら、それらを1つのフィールドに結合できます。単一の名前フィールドを姓と名に分割するアルゴリズムを作成するのは難しいことではありませんが、いくつかを間違えると、人々は名前の間違いを嫌いになります。分割フィールドを使用すると、ユーザーは名前がどのように使用されるかを確認するときに、名前の入力方法を調整できます。それらを永続的な単一の名前フィールドに結合することはリスクが低くなります。
@JanHudecが言ったことの多くに同意しますが、少し詳しく説明したいと思います。
用語は重要です
与えられた名前や姓や姓のような用語には意味的な意味があり、データベースは常にデータのセマンティクスを反映する必要があります。 名や姓などの用語は、通常、名前の機能に関する英語とアメリカの考えに基づいて位置的な意味を持ちます。データのセマンティクスには適切な用語を使用してください。
どこまで分解する必要がありますか?
title(Mr. Dr. Mrs.など)またはordinal(Jr.、Sr.、III、など)、さらには証明書(PhD、MS、PCAMなど)であり、状況や目的によっては重要になる場合があります。
多くのロケールには、複数の姓(父方と母親)の概念があります。フォームに記入するとき、アメリカのフォームで「姓」の父方の姓を使用したり、父親の名前(Janson )。
アメリカではミドルネームが1つ以上あるのが一般的ですが、家族以外では無視されることがよくあります。
ソート
ソート名専用のフィールドがあると便利です。これにより、レコードを作成するときにルールを明確にすることができます。また、国境を越えて名前が正しい順序でソートされていることも確認します。
一般的な慣行
実際の要件は、名前についてどの程度正確である必要があるかを決定します。政府や銀行のWebサイトを作成している場合は、Facebookのような非公式なものよりも、名前を保存および処理するための要件が多くなります。
非公式のガイドライン
セミフォーマルガイドライン
正式なガイドライン
@JanHudecが指摘したことと同意することは別として、多くの国では複数の姓があるため、1つの姓フィールドは無関係である可能性があることにも注意する必要があります。例えば。スペインでは、姓が2つあり、状況に応じてどちらか一方または両方を使用します。
また、文化によっては、姓で電話をかけると失礼に見える人もいれば、逆の場合もあるので、想定に基づいてコミュニケーションをパーソナライズするべきではありません。
また、一部の文化では「Mrs」と「Ms」のような形式に重点を置いており、特定のケースに応じてこのWordを姓または名と組み合わせる場合もあります。
だから私はあなたが単一の名前フィールドとおそらくユーザーが入力する追加のフィールドを持っているソリューションに傾倒します-ユーザーに向ける方法のヒント-オンラインでチケットを購入するときに多くの航空会社がするのと同じようなものです。これにより、前述の外部Webサービスで必要な場合に名前を分割する方法の問題も解決する場合があります。
@JanHudecと@KjMagが指摘したことにさらに加えて、英語に非常に近い文化/言語でも、これは問題になります。ドイツ語を例にとろう。あなたは、Vornamen、First names、Nachnamen、Last name、およびRufnameと呼ばれる名前の概念を持っています。私の父を例にとると、彼には3つの名があり、出生証明書には、Christoph Stephan Andreasの順にリストされています。そして、彼には姓が1つあります。彼の名前は何と呼ばれていると思いますか?
正解:アンドレアス。それが彼のルフネームです。アメリカでは、それを彼のファーストネームとしてアメリカのテンプレートに合わせています。ドイツでは、姓の最後があなたの名前だと思っているかもしれませんが、私の兄弟はChristoph Sebastian Herbert Mariaです。 (私はバイエルン人です)または妹のクリスティン・ガブリエレ。それらが呼ばれる名前は何だと思いますか?それぞれセバスチャンとクリスティーン。
氏名の1つのフィールドを言う答えを3番目にします。そして、私はそれに追加します:姓/姓の別のフィールドを追加して、質問を提起します。リストではどの名前で並べ替えますか?そして最後のフィールド:どのように対処したいですか?