Memodelkan nama depan dan nama belakang secara terpisah

32

Argumen mana yang harus dipertimbangkan seseorang ketika merancang sistem baru dan harus menyimpan nama seseorang sebagai satu bidang atau secara terpisah sebagai nama depan / belakang?

Pro untuk bidang tunggal:

  • UI yang lebih sederhana
  • Tidak ada ambiguitas ketika mencoba memasukkan nama seseorang, yang memiliki nama yang sangat panjang (seringkali tidak jelas yang merupakan nama belakang / nama depan ..)
  • Kompleksitas yang kurang saat menangani judul (mis. Tidak perlu bidang terpisah untuk memasukkan "MD" atau "Dr.")

Pro untuk bidang perpecahan:

  • Komunikasi yang dipersonalisasi dimungkinkan "Dear Mr X" atau "Dear Julie"
  • Jika layanan web yang dikonsumsi memerlukan nama depan / belakang secara terpisah, ia dapat disediakan dengan mudah.
  • Pilihan yang lebih baik untuk industri apa pun dengan persyaratan identifikasi yang ketat (misalnya medis, pemerintah, dll.)
  • Pilihan yang lebih aman, karena Anda selalu dapat kembali ke alternatif bidang tunggal

Apakah Anda melihat argumen tambahan yang tidak tercantum di atas?

Pembaruan: pertanyaannya adalah, argumen tambahan apa (= yang tidak tercantum dalam pertanyaan) dapat dicantumkan untuk setiap solusi. Saya pikir memberikan pendapat dan bukannya kemungkinan pro dan kontra mendorong diskusi dengan cara yang salah. Setiap pengembang harus membuat keputusan tentang masalah ini, tujuan dari pertanyaan ini adalah untuk mengumpulkan daftar argumen non-sepele yang dapat dievaluasi jika diperlukan.

Istvan Devai
sumber
11
Apa yang Anda coba lakukan dengan nama-nama itu? Apakah Anda memiliki persyaratan hukum? Apakah ada konsekuensi selain tampilan untuk nama pengguna?
Darkhogg
9
Distensi nama depan / nama belakang tidak mendukung orang dengan hanya satu nama seperti "Cher".
JacquesB
77
Saya menyarankan Anda untuk membaca artikel berikut: kalzumeus.com/2010/06/17/… itu adalah pembuka mata yang nyata ketika memikirkan nama.
Pieter B
10
Anda mungkin mempertimbangkan untuk mengajukan pertanyaan ini pada Pengalaman Pengguna , komunitas di sana mungkin dapat menawarkan perspektif yang berbeda tentang masalah antarmuka pengguna ini.
11684
9
@PieterB Beberapa poin dalam artikel itu dipertanyakan dan terkadang Anda harus membuat asumsi untuk menyelesaikan sesuatu. Artikel itu tidak memberikan saran berguna tentang cara menangani nama. Jika nama berisi karakter non-unicode, apa yang Anda lakukan, memungkinkan pengguna untuk mengunggah gambar? Bagaimana jika ada aspek non-visual - memungkinkan video dengan suara? Bagaimana jika sebuah nama adalah performance art dan hanya dapat dilakukan pada tengah malam di Hong Kong? Pada titik tertentu Anda harus menjadi nyata dan menyelesaikan masalah bukannya menikmati kasus sudut teoritis yang tidak akan pernah ditemui basis pengguna Anda.
Pasang kembali Monica

Jawaban:

50

Nama depan dan nama belakang bukanlah konsep yang berguna. Nama-nama bekerja secara berbeda di berbagai negara. Di sebagian besar negara-negara Asia, nama keluarga ditulis terlebih dahulu, tetapi masih digunakan untuk menyortir — jadi Anda dapat memasukkannya dalam nama depan, dan penyortiran akan salah, atau dalam nama belakang, dan tampilan akan. Dan kemudian ada negara-negara seperti Islandia di mana mereka tidak menggunakan nama keluarga sama sekali, tetapi sebaliknya diberi nama ayah. Jadi mereka hanya mengurutkan berdasarkan nama yang diberikan.

Istilah "nama yang diberikan" dan "nama keluarga" (atau "nama keluarga") lebih baik dalam hal ini, tetapi saya masih akan menghindarinya kecuali benar-benar diperlukan (yaitu dokumen resmi seperti paspor memilikinya, jadi Anda memerlukannya), karena mereka hanya membuat segalanya lebih rumit.

  • Komunikasi yang dipersonalisasi dimungkinkan "Dear Mr X" atau "Dear Julie"

Kecuali Anda tidak tahu apakah akan memanggil orang yang diberikan dengan nama depan mereka, atau nama belakang atau apa. Dan jangan mulai saya dengan bahasa yang memiliki akusatif — Anda tidak bisa mendapatkan akusatif dari nominatif secara umum. Tidak, lebih baik jika Anda hanya bertanya kepada pengguna apa yang harus memanggil mereka.

  • Jika layanan web yang dikonsumsi memerlukan nama depan / belakang secara terpisah, ia dapat disediakan dengan mudah.

Jika . Jika Anda bergantung pada layanan lain, Anda terkunci pada pilihan buruk mereka. Tidak ada keuntungan untuk desain Anda sendiri.

  • Pilihan yang lebih baik untuk industri apa pun dengan persyaratan identifikasi yang ketat (misalnya medis, pemerintah, dll.)

Tidak, ini pilihan yang salah untuk ini. Dokumen resmi umumnya menggunakan istilah "nama yang diberikan" dan "nama keluarga" (atau "nama keluarga"), yang kurang ambigu.

  • Pilihan yang lebih aman, karena Anda selalu dapat kembali ke alternatif bidang tunggal

Sebenarnya, karena ambiguitas dengan nama-nama Asia, tidak begitu jelas Anda bisa.

Jan Hudec
sumber
2
Jika aplikasi digunakan di berbagai belahan dunia, label bidang perlu dilokalisasi bersama dengan bagaimana mereka digabungkan / digunakan.
JeffO
5
@ Jeffe, masalah sebenarnya adalah bahwa hari ini Anda cenderung memiliki orang-orang dari berbagai negara dalam sistem yang sama, jadi Anda perlu membuat sistem dan menemukan cara bagaimana memasukkan nama dari budaya yang berbeda ke dalamnya sehingga bekerja dengan cukup konsisten . Jangan memasuki lubang kelinci itu kecuali Anda benar-benar membutuhkannya.
Jan Hudec
4
@IstvanDevai ada kasus hukum di California di mana kontrak dinyatakan batal karena undang-undang kredit mensyaratkan "nama belakang". Orang tersebut memiliki nama keluarga ganda Hispanik, tetapi ketika ditanya nama belakang, nama keluarga (ayah) pertama diberikan, yang umum. Pihak lain kehilangan koleksi mereka karena nama dalam kontrak itu bukan nama "terakhir" nya, yaitu yang ada di akhir nama lengkapnya. Contoh cara pertama / terakhir mengundang kebingungan, dan tidak sepenuhnya identik dengan nama yang diberikan / nama keluarga.
6
@Casey - nama tengah harus dimasukkan dalam bidang nama yang diberikan, karena itulah mereka: nama yang diberikan sekunder. Jika saya punya satu dolar untuk setiap kali saya melihat orang Hispanik yang tidak memiliki nama tengah, tetapi nama keluarga ganda mendapatkan nama keluarga pertama mereka (dan yang paling penting) didorong di bidang nama tengah, saya sudah pensiun. Jika Anda ingin tahu apa yang harus dipanggil seseorang, miliki bidang untuk itu, terpisah dari nama. Kemudian Bartholomew Frank Edward Smith Wellington dapat memberitahu Anda untuk memanggil mereka Bart. Kita mungkin berbicara bahasa Inggris, tetapi ada orang-orang di sini dari tempat yang tidak berbahasa Inggris, dan nama mereka juga dimasukkan.
4
-1. Sementara jawabannya sendiri tidak sepenuhnya salah, itu tidak masuk akal untuk pertanyaan yang ada. OP mencari lebih banyak argumen untuk menggunakan satu bidang atau dua bidang untuk nama manusia. Apakah itu disebut "pertama / terakhir" atau "diberikan / sur" bukanlah fokus, itu hanya label yang ada dalam pikiran OP. Semua poin lain tampaknya sangat berpihak pada saya, dan dalam pengalaman pribadi saya dengan membuat dan menggunakan aplikasi untuk pelanggan besar, asumsi OP benar-benar normal dan terjadi begitu saja. Jawaban ini hanya mencoba untuk memperdebatkan parameter dari pertanyaan itu.
AnoE
31

Satu-satunya argumen yang penting adalah apa saja persyaratan sistem Anda?

Apakah Anda perlu berurusan dengan satu budaya saja? Jika demikian, sesuaikan dengan budaya itu. Kalau tidak, rencanakan untuk internasionalisasi (seperti yang ditunjukkan orang lain).

Apakah Anda perlu mendapatkan data untuk berurusan dengan formulir pemerintah, layanan kesehatan atau persyaratan hukum / sistem lainnya? Ikuti apa pun yang dikte itu. Jika itu berarti nama depan dan belakang, lakukanlah. Jika itu berarti sesuatu yang berbeda, lakukan itu.

Apakah Anda memiliki persyaratan untuk API dengan nama depan dan belakang (atau apakah cukup masuk akal, cukup untuk menjamin mengabaikan YAGNI)? Lakukan apa yang masuk akal di sana.

Jika Anda membutuhkan komunikasi yang dipersonalisasi, apakah masuk akal untuk hanya meminta seseorang nama yang mereka sukai dan menyimpannya?

Persyaratan sistem Anda harus menentukan apa yang Anda lakukan. Lakukan apa yang harus Anda lakukan dan YAGNI sisanya.

Becuzz
sumber
7
Tidak ada yang namanya "satu budaya" lagi. Bahkan komunitas terkecil memiliki campuran norma dan bahasa budaya.
BobDalgleish
7
@ BobDalgleish Benar, tapi terkadang itu tidak masalah. Terkadang biaya untuk mendukung beragam budaya membuat para pelaku bisnis hanya mengatakan tidak.
Becuzz
9
@ BobDalgleish Agaknya budaya mana yang dominan di pasar yang aplikasi sedang dikembangkan? Saya tidak berpikir ini sebenarnya yang misterius atau langka.
Casey
3
@ BobDalgleish - "budaya" tidak relevan. Tidak ada yang bertanya tentang budaya Anda saat Anda mengeluarkan dokumen. Jika saya perlu mendukung hanya Serbia (di mana saya saat ini) saya akan memasukkan nama depan dan belakang seperti yang didefinisikan pada setiap dokumen yang dikeluarkan di negara ini, dan hanya itu. Tidak masalah apa budaya Anda. Paspor, SIM, dll. Akan memiliki nama depan dan belakang, titik.
Davor Ždralo
2
@icirellik Salah dalam hal apa? Apakah hal-hal itu (batas panjang, dll.) Salah jika Anda mencoba memodelkan alam semesta dengan sempurna? Pasti. Tetapi saya tidak pernah diminta untuk memodelkan alam semesta dengan sempurna dan setiap cara yang mungkin seseorang ingin memilih nama. Apakah saya memperhitungkan nama Klingon? Tapi mengapa tidak? Seseorang mungkin melakukan itu suatu hari nanti (jujur ​​tidak akan mengejutkan saya jika seseorang melakukannya sekarang). Tetapi ada titik di mana Anda hanya tahu akan ada beberapa hal yang tidak akan bekerja dengan model Anda. Dan waktu dev tambahan untuk menangani setiap kemungkinan tidak layak. (lanj ...)
Becuzz
5

Jika Anda memiliki lebih dari satu cara untuk menampilkan dan / atau menggunakan nama, maka Anda mungkin perlu bidang yang terpisah. Seiring dengan entri data, Anda dapat memberikan umpan balik untuk menunjukkan kepada pengguna bagaimana itu akan digunakan. Bagaimana Anda menggabungkan mereka, dapat menyebabkan konversi ke satu bidang di masa depan.

Miliki beberapa label yang menunjukkan: Salam atau Nama Tampilan: Nama Depan + Nama Belakang Pengorganisasian / Penyortiran: Nama Belakang, Nama Depan

Saat Anda tidak yakin bagaimana ini akan digunakan di masa depan, mulailah dengan nama terpecah dan kemudian Anda bisa menggabungkannya menjadi satu bidang ketika Anda menyadari bahwa hanya itulah yang benar-benar Anda butuhkan. Bukannya sulit untuk menulis algoritma untuk membagi bidang nama tunggal menjadi nama depan dan belakang, tetapi Anda akan membuat kesalahan pada beberapa dan orang-orang benar-benar tidak suka kesalahan dengan nama mereka. Dengan bidang yang dibagi, pengguna dapat menyesuaikan bagaimana mereka memasukkan nama mereka ketika mereka melihat bagaimana itu digunakan. Menggabungkan mereka dalam bidang nama tunggal permanen tidak terlalu berisiko.

JeffO
sumber
5

Saya setuju dengan banyak apa yang dikatakan @JanHudec, meskipun saya ingin sedikit memperluas:

  • Anda perlu tahu apa persyaratan sebenarnya, tetapi lebih mudah untuk menggabungkan informasi daripada membaginya begitu digabungkan lagi.
  • Penyortiran akan selalu menjadi tantangan, karena aturan dapat berbeda di seluruh lokal dan budaya.
  • Banyak budaya tidak cocok dengan Anda, yang mengarah pada asumsi buruk. (Ini adalah poin terbesar Jan)

Terminologi itu Penting

Istilah seperti nama dan nama keluarga atau nama keluarga tertentu memiliki makna semantik, dan basis data Anda harus selalu mencerminkan semantik data Anda. Istilah seperti nama depan dan nama belakang memiliki makna posisi, biasanya didasarkan pada ide-ide bahasa Inggris dan Amerika tentang cara kerja nama. Gunakan terminologi yang tepat untuk semantik data Anda.

Seberapa jauh Anda perlu memecahnya?

Ada konsep judul (Tn. Dr. Mrs. dll.) Atau ordinal (Jr., Sr., III, dll.), Dan bahkan sertifikasi (PhD, MS, PCAM, dll.) Yang dapat menjadi penting tergantung pada konteks dan tujuan.

Banyak lokal memiliki konsep beberapa nama keluarga (ayah dan ibu), dan beberapa tidak punya. Saat mengisi formulir, kadang-kadang orang harus membuat pilihan sulit tentang nama mana yang akan digunakan, misalnya menggunakan nama keluarga ayah untuk "nama keluarga" dalam bentuk Amerika, atau muncul dengan nama belakang berdasarkan nama ayah (Janson ).

Sementara di Amerika adalah umum untuk memiliki satu atau lebih nama tengah, sering diabaikan di luar keluarga Anda.

Penyortiran

Ini membantu untuk memiliki bidang khusus untuk nama sortir. Dengan cara itu Anda bisa mendua aturan ketika Anda membuat catatan. Ini juga memastikan Anda memiliki nama yang diurutkan dalam urutan yang benar melintasi batas internasional.

Praktek Umum

Persyaratan nyata Anda menentukan seberapa benar Anda perlu tentang nama. Jika Anda membuat situs web pemerintah atau perbankan, maka Anda memiliki lebih banyak persyaratan untuk menyimpan dan menangani nama daripada sesuatu yang informal seperti Facebook.

Pedoman Informal

  • Memiliki satu bidang yang menggambarkan bagaimana pengguna ingin dikenal
  • Sortir dan tampilkan menggunakan satu nama itu

Pedoman Semi Formal

  • Memiliki satu bidang untuk nama panggilan, atau cara pengguna ingin ditangani
  • Memiliki dua bidang, satu untuk nama yang diberikan dan satu untuk nama keluarga (nama keluarga harus opsional)
  • Hitung bidang pengurutan berdasarkan lokal dan kombo yang diberikan / nama keluarga
  • Gunakan nama panggilan saat menyapa pengguna secara langsung
  • Gunakan nama formal saat mendaftar orang

Pedoman Formal

  • Ini ditentukan oleh kebijakan dan prosedur yang ada untuk entitas yang Anda dukung
  • Anda perlu sebanyak bidang sebagai jumlah maksimum bagian nama yang akan Anda dukung, dinamai semantik untuk apa mereka.
  • Sertakan bidang penyortiran yang menangani penyortiran seperti yang Anda lakukan dalam kasus semi-formal
  • Tampilan juga biasanya ditentukan oleh kebijakan dan prosedur yang ada. Anda harus membiasakan diri dengan mereka.
Berin Loritsch
sumber
Apakah downvoter mau menguraikan? Mungkin saya melewatkan sesuatu?
Berin Loritsch
Bagi saya ini tampaknya komprehensif dan saran yang paling pragmatis diberikan di sini.
Jesse Clark
4

Terlepas dari apa yang telah ditunjukkan oleh @JanHudec dan yang saya setujui, perlu juga dicatat bahwa di banyak negara orang memiliki lebih dari satu nama belakang, sehingga bidang nama belakang tunggal mungkin tidak relevan. Misalnya di Spanyol orang memiliki dua nama belakang, dan mereka hanya menggunakan satu atau keduanya tergantung pada situasinya.

Selain itu, Anda tidak boleh mempersonalisasikan komunikasi berdasarkan asumsi Anda karena dalam beberapa budaya Anda mungkin terlihat tidak sopan ketika memanggil orang dengan nama belakang mereka dan dalam kasus orang lain mungkin sebaliknya.

Juga, beberapa budaya menekankan pada bentuk-bentuk seperti 'Nyonya' vs 'Nyonya', dan mereka juga dapat menggabungkan kata ini dengan nama depan atau belakang tergantung pada kasus tertentu.

Jadi saya akan condong ke solusi di mana Anda memiliki bidang nama tunggal dan mungkin bidang tambahan yang diisi pengguna yang mengisyaratkan cara beralih ke pengguna - sesuatu yang mirip dengan apa yang dilakukan banyak maskapai saat Anda membeli tiket online. Ini juga dapat memecahkan masalah tentang cara membagi nama jika Anda membutuhkannya untuk layanan web eksternal yang telah Anda sebutkan.

KjMag
sumber
1
Agaknya jika Anda benar-benar melokalisasi, Anda dapat menggunakan templat yang berbeda untuk bahasa yang berbeda
Casey
4

Pada menambahkan lebih ke apa yang telah ditunjukkan oleh @JanHudec dan @KjMag, bahkan dalam budaya / bahasa yang sangat dekat dengan bahasa Inggris, ini menjadi masalah. Ambil Jerman misalnya. Anda memiliki konsep Vornamen, Nama depan, Nachnamen, Nama belakang, dan Rufname, nama Anda dipanggil. Ambil contoh ayah saya, ia memiliki 3 nama depan, pada akte kelahirannya mereka terdaftar dalam urutan Christoph Stephan Andreas. Dan dia memiliki satu nama belakang. Menurut Anda apa namanya dia dipanggil?

Jawaban yang benar: Andreas. Itulah Rufname-nya, di Amerika ia menempatkan itu sebagai nama pertamanya yang cocok dengan templat Amerika. Jadi Anda mungkin menganggap di Jerman nama belakang Anda yang pertama adalah nama Anda dipanggil tetapi kemudian Anda memiliki saudara lelaki saya: Christoph Sebastian Herbert Maria. (Sekarang saya telah memberikan kami orang Bavaria) Atau saudara perempuan saya Christine Gabriele. Menurut Anda, nama apakah itu namanya? Sebastian dan Christine masing-masing.

Saya akan ketiga jawaban yang mengatakan satu bidang untuk nama lengkap. Dan saya akan menambahkan itu: mungkin menambahkan bidang lain untuk nama keluarga / nama keluarga dan mengajukan pertanyaan: dengan nama apa Anda akan diurutkan dalam daftar? Dan kemudian bidang terakhir untuk: bagaimana Anda ingin ditangani?

Hangman4358
sumber
1
"Nama belakang" hanyalah nama lain untuk "nama keluarga," bukan secara harfiah kata yang muncul terakhir secara berurutan. Nama belakang Nakayama Taro adalah "Nakayama."
Casey
2
Untuk menambahkan kasus lain: Kakek saya dipanggil "Antoon Leendert van Ingen Schenau" => diberi nama: "Antoon Leendert"; disebut: "Leen"; nama keluarga: "van Ingen Schenau" yang akan disortir di bawah "Ingen". Baik nama panggilan, maupun penyortiran yang benar tidak dapat diturunkan dengan mudah dari entri nama depan / nama belakang.
Bart van Ingen Schenau
1
@ Casey menurut siapa? di Jepang itu adalah "nama atas", misalnya, bukan "nama belakang".
eis
1
@is Di Jepang itu adalah 名字. Tetapi di sini di dunia berbahasa Inggris, "nama belakang" adalah sinonim untuk "nama keluarga" dan bukan secara harfiah "kata terakhir dalam urutan nama seseorang."
Casey
1
@ ya saya tidak yakin poin apa yang ingin Anda sampaikan. Pengguna tidak akan tahu bedanya jika Anda memanggil bidang database last_name alih-alih nama keluarga; satu hanya sinonim dari yang lain. Jika kekhawatiran Anda adalah menghadirkan perangkat lunak untuk penutur non-bahasa Inggris, maka itu tidak relevan karena baik "nama keluarga" dan "nama belakang" adalah istilah bahasa Inggris dan Anda harus menggunakan istilah dalam bahasa apa pun yang Anda maksud untuk melokalisasi halaman tersebut. Jika masalahnya adalah Anda ingin orang-orang yang tidak tahu bahasa Inggris dapat menggunakan halaman bahasa Inggris, yah, itu sepertinya cara yang cukup setengah hati untuk mengatasi masalah yang sebenarnya.
Casey
-2

Jika seseorang pergi untuk aplikasi global, orang mungkin akan memodelkan nama seseorang sebagai array string. Misalnya, perhatikan nama presiden di film Idiocracy:

  • Dwayne Elzondo Mountain Dew Herbert Camacho

Itu nama lengkapnya. Nama mengandung 6 elemen dalam array. Untuk budaya AS, nama depan adalah elemen pertama dalam array (Dwayne) dan nama belakang adalah elemen terakhir dalam array (Camacho). Namun itu tidak selalu terjadi.

Seseorang dapat menerapkan aturan khusus budaya untuk menentukan nama "pertama" jika nama depan sebenarnya adalah elemen terakhir dan sebagainya tergantung pada bagaimana nama bekerja di berbagai budaya / lokal.

Juga, dalam kasus AS, kami memiliki kasus ketika elemen terakhir bukan nama belakang seperti:

  • Dwayne Elzondo Dew Gunung Herbert Camacho Jr.

Jadi, mungkin bidang sufiks nama atau seseorang harus menguraikan elemen terakhir mencari sufiks yang diketahui berdasarkan budaya untuk mendapatkan nama belakang yang benar.

Jadi, Anda sebaiknya menyimpan nama dalam satu elemen (Nama lengkap) dan kemudian menerapkan rutin "standardisasi / sanitasi" untuk menguraikan elemen tertentu sesuai kebutuhan. Ada strategi serupa untuk alamat. Mereka biasanya dikumpulkan sebagai satu string dan kemudian dikirim ke layanan untuk mengurai bagian-bagian.

Jon Raynor
sumber
3
Satu bidang dan kemudian "parsing" adalah ide yang sangat buruk. Pertimbangkan seseorang dengan nama keluarga "Senior": bagaimana Anda menguraikannya? Bagaimana dengan "de la Jolla" sebagai nama keluarga?
BobDalgleish
Saya menyebutkan parsing atau bidang Suffix nama. Jika solusi generik diperlukan seseorang akan membutuhkan pengurai nama sehingga Anda dapat menangani setiap kasus seperti "Senior" dan "de la Jolla". Orang bisa menggunakan AI dan melatihnya bagaimana mengenali nama. Saya berani bertaruh jika seseorang memberinya set data yang cukup besar, ia akan bisa mengenali "de la Jollas" di dunia. Tetapi itu adalah salah satu solusi yang mungkin. Tentu saja mengumpulkan bagian-bagian yang terpisah juga dimungkinkan tetapi hal itu memiliki kelemahan.
Jon Raynor