Bagaimana memodelkan lebih dari satu 'nama belakang'?

11

Di negara-negara berbahasa Spanyol kami menggunakan lebih dari satu nama belakang, seperti:

Nama depan ↘ ↙ Nama belakang
                Pedro Arturo Rodríguez Loyola
        Nama tengah ↗ ↖ (?)

Saya mencoba memodelkan data untuk nama pasien. Di negara kita ini penting, jadi saya tidak bisa mengabaikan nama belakang kedua, tetapi saya ingin membangun aplikasi yang masuk akal bagi pengembang lain, terutama dari negara-negara berbahasa Inggris.


Saya membuat pertanyaan serupa tentang Bahasa Inggris. SE , memiliki beberapa wawasan tentang mengapa penting untuk mempertahankan kedua nilai tersebut.

Pablo Olmos de Aguilera C.
sumber
15
Apakah ada alasan sekecil apa pun mengapa nilai "nama belakang" tidak boleh mengandung spasi? Apakah Anda benar-benar ingin menggunakan satu nama belakang di beberapa kasus penggunaan dan semua nama belakang di yang lain? Jika tidak, maka saya gagal melihat masalahnya. Biarkan "nama belakang" persis seperti yang dimasukkan pengguna dan Anda baik-baik saja.
Kilian Foth
3
dalam bahasa Belanda nama jenis "van de Iets" cukup umum. biarkan saja bidang nama belakang mengandung spasi
ratchet freak
2
Apakah ada alasan Anda tidak bisa hanya memiliki satu namebidang?
asfallows
2
@asfallows: karena jika kita mencetak daftar pasien, kita perlu mengurutkannya berdasarkan nama belakang. Misalnya, jika nama Anda adalah "José Carlos Fernando Almodóvar Soto", bagaimana saya bisa tahu sebelumnya bahwa "Almodóvar" itu nama belakang pertama?
Pablo Olmos de Aguilera C.
2
@FedericoPoloni: Siapa pun yang mencari pasien dengan nama belakang mungkin tahu nama belakang pasien.
Mooing Duck

Jawaban:

19

T: Bagaimana cara menghitung DBA?

A: 0, 1, banyak

Seorang individu memiliki 1 atau lebih nama yang diberikan dan 1 atau lebih nama keluarga, dan mungkin judul. Nama-nama ini memiliki perintah kepada mereka. Terserah lokalisasi dan budaya untuk menentukan cara merujuk ke seorang individu.

Hubungi Id
NamePart {"John", "Smith", ...}
NameType {title, given, family, ???}
Pesan {1, 2, 3, ...}

Untuk Pedro Arturo Rodríguez Loyola(kontak # 1), Anda memiliki empat baris:

1 / Pedro / diberikan / 1
1 / Arturo / diberikan / 2
1 / Rodríguez / keluarga / 3
1 / Loyola / keluarga / 4

Dengan cara ini tidak terbatas pada struktur yang diberikan namun masih masuk akal untuk kontak yang diberikan di sana. Apa yang Anda lakukan ketika Anda memiliki seseorang dengan 3 atau 4 nama keluarga atau diberikan? atau nama gadis?

Perhatikan bahwa saya telah mengubah urutan dari revisi sebelumnya atas jawaban ini - pesanan adalah pesanan atas seluruh nama daripada hanya pesanan dalam jenis nama karena dalam beberapa budaya, nama keluarga yang lebih dulu, Anda mungkin telah membagi bagian judul "Sir John Smith II".

Bacaan Tambahan

Dave Jarvis
sumber
2
+1 Namun programmer ini telah bekerja dengan banyak anggota tim lepas pantai, tetapi nama terpanjang yang pernah saya lihat masih "Pablo Diego José Francisco de Paula Juan Nepomuceno María de los Remedios Crispiniano de la Santísima Trinidad Ruiz y Picasso". Pelecehan anak atau tidak?
Elliott Frisch
@Darkhogg utnapistim memilikinya sebagai tautan 'Ini' pertama dalam jawabannya. Ini salah satu 'panduan definitif'.
Saya suka ide itu sebagai konsep, tetapi tidak sulit untuk menyajikannya kepada pengguna bahwa itu akan menulis nama sebenarnya? Satu-satunya hal yang dapat saya kemukakan adalah bidang kontak "GMail", yang memungkinkan Anda "menambahkan" bagian-bagian dari nama tersebut. Pernahkah Anda memikirkan bagaimana Anda benar-benar dapat menggunakan model data semacam itu?
Pablo Olmos de Aguilera C.
1
@Peteris sering dalam aplikasi medis (pertanyaan awal menyebutkan 'pasien') Anda perlu memberikan nama terstruktur untuk integrasi dengan sistem lain. Memiliki data yang tidak terstruktur berarti Anda akan mengalami kesulitan besar untuk berintegrasi dengan sistem lain, bahkan hal-hal seperti memindahkan pasien dari satu rumah sakit ke rumah sakit lain atau mengisi formulir isian untuk klaim asuransi. Dan dengan demikian masalah tentang bagaimana menyusun data dengan cara yang memungkinkan Anda untuk memanipulasinya dengan semua cara yang diperlukan.
1
@Ben sebuah bidang teks gratis tidak berfungsi dengan baik ketika aplikasi meminta penyortiran berdasarkan nama keluarga atau ketika mencoba berinteraksi dengan sistem EDI lama untuk mentransfer pasien dari ambulans ke rumah sakit (atau sebaliknya), atau mengisi bidang yang sesuai dalam berbagai bentuk klaim asuransi. Ini semua adalah bidang utama di mana lebih mudah untuk memiliki sedikit data yang menentukan setiap bagian nama daripada mencoba untuk menetapkan makna setelah fakta. Bidang teks gratis bagus, tapi kadang-kadang itu bukan opsi untuk bekerja dengan sistem lain.
10

Ini bisa membantu. Posnya lucu, tapi penuh wawasan.

[Nama depan] [Nama belakang] bukan aturan universal untuk nama. Itu hanya umum di mana Anda tinggal. Jika Anda menerapkan aturan dalam hal ini, cepat atau lambat Anda akan memiliki orang yang tidak dapat ditambahkan ke sistem Anda.

Pada dasarnya, pastikan Anda menerapkan batasan sesedikit mungkin, dan memungkinkan fleksibilitas antara nama yang disimpan sebenarnya, dan yang ekstra.

Saya akan pergi dengan sesuatu seperti ini:

  • Nama tampilan (untuk nama yang konsisten saat menampilkan formulir / data): (harus [pertama] [terakhir]).
  • Nama lain / nama lengkap (untuk pencarian, pencocokan yang lebih tepat, dll). Di sini, izinkan pengguna untuk menulis apa pun, hingga panjang yang diberikan; panjangnya harus lebih dari yang Anda pikir seharusnya cukup - misalnya jika Anda berpikir 40 karakter sudah cukup, masukkan 500 :)).
  • Mengatasi (Tn. Ny, Nona, Jr, Sr, -san, nilai khusus (seperti Tov.) Dll).
  • ID internal (ID ini harus secara unik mengidentifikasi setiap orang dalam aplikasi Anda, mencegah tabrakan nama).

Misalnya, nama saya tidak dapat ditulis dengan benar di sebagian besar bahasa Eropa, karena diakritik khusus Rumania (jadi, setiap kali saya menulis nama saya di luar negara asal saya, secara teknis saya salah menuliskannya - sehingga orang dapat membaca dan mengucapkannya).

Beberapa contoh dan tautan nama yang menarik:

http://en.wikipedia.org/wiki/Nicholas_Barbon

http://en.wikipedia.org/wiki/Prince_%28musician%29

http://en.wikipedia.org/wiki/P_diddy

http://en.wikipedia.org/wiki/Burmese_name

utnapistim
sumber
Satu hal lagi yang perlu dipertimbangkan adalah menyortir. Sering diinginkan untuk dapat mengurutkan daftar orang berdasarkan nama belakang mereka (atau hanya nama, atau kata pertama dalam nama belakang, dll.). Jika aplikasi perlu melakukan itu maka kita perlu beberapa cara untuk mengidentifikasi "nama penyortiran" mereka.
BenM
Tapi saya suka ide ini secara keseluruhan. Alih-alih mewakili nama berdasarkan asumsi budaya, kami mewakilinya berdasarkan fungsi yang mereka butuhkan dalam sistem.
BenM
Saya suka jawaban Anda. Namun saya tidak mengerti bagaimana ini bisa membantu saya menuliskan nama. Saya perlu mengurutkan mereka misalnya, kami biasanya menggunakan nama belakang. Bagaimana menempatkan mereka di bidang / kolom yang disebut "nama lain" atau "nama tampilan" dapat membantu saya dengan itu misalnya? Kudos untuk nama Burma. Luar biasa.
Pablo Olmos de Aguilera C.
@pablox, maksud saya adalah bahwa secara konseptual, Anda tidak boleh memperlakukan nama seseorang sebagai identitas, tetapi sebagai metadata untuk identitas (dan id harus berupa kode unik). Anda dapat mempertimbangkan metadata tersebut sebagai terorganisir, sesuai dengan kebutuhan aplikasi Anda. Misalnya, Anda bisa memilih peran "menyortir nama" ke nama kedua (jika ada) di "grup token nama", peran "nama tampilan" sebagai token pertama, dan peran "menyalamkan nama" sebagai "Dr. | Mr. | Ms. | etc" + "nama tampilan".
utnapistim
Penyortiran nama biasanya akan menjadi "penyortiran buku telepon", di mana Anda mengabaikan berbagai pelengkap nama dan mengurutkan pada bagian yang penting. Misalnya, "van de Bogart" akan diurutkan pada "Bogart", bukan "van". Bagaimana menangani nama multi-bagian Hispanik akan tergantung secara budaya - di mana itu digunakan dan bagaimana penggunaannya cocok.
Phil Perry
0

Itu bukan hal yang rumit ..... atau saya kehilangan sesuatu.

Miliki bidang-bidang ini: name(varchar), lastname(varchar).

Kemudian formulir untuk mengisi nama lengkap, contoh: Jorge Patriciodan nama belakang Pèrez Gonzáles.

Dalam pencarian, Anda memiliki banyak operator pembanding, misalnya di MySQL, seperti likeyang akan membantu Anda mencarinya.

Kebanyakan nama belakang yang dikomposisi selalu teratur. Pérez Gonzálezkebanyakan mengatakan nama belakangnya seperti itu, dan tidak dalam urutan terbalik.

Anda akan mendesain berlebihan database Anda dengan cara lain.

JorgeeFG
sumber
1
Bagaimana jika nama keluarga diberikan pertama kali? tautan
1
@MichaelT, bagaimana dengan itu? Meledakkan bidang dan mencari nama dan tabel nama belakang untuk setiap kemunculan nilai. Selalu seandainya Anda memiliki bidang pencarian seperti Google, selain itu Anda bisa saja memiliki formulir seperti "Nama:" dan "Nama Belakang:"
JorgeeFG
0

Ada tiga jenis nama pribadi: Polynyms (nama-nama dengan banyak komponen), Mononim (nama-nama dengan hanya satu komponen, ex "Cher") dan Pictonyms (nama-nama yang diwakili oleh gambar, ex The Artist ).

Seseorang dapat memiliki banyak nama, memainkan peran , misalnya Nama Legal, dan Nama Pilihan.

Polynym memiliki beberapa komponen, yang harus diberi nama dan nama keluarga. Ada beberapa jenis nama keluarga:

  1. Nama keluarga biasa (Jones)
  2. Nama keluarga berlaras ganda ("Vaughn Williams" atau "Louis-Dreyfus")
  3. Nama keluarga True Compound {diberikanName: "Juan Pablo" nama keluarga: "Fernández de Calderón", secondarySurname: "García-Iglesias"}

3 penting karena ia diharapkan dipanggil sebagai Tuan Fernández de Calderón , bukan Tuan Fernández de Calderón García-Iglesias.

Jadi pada dasarnya, memiliki bidang nama keluarga wajib, dan bidang nama belakang sekunder nullable.

pengguna118920
sumber
0

Bagaimana Anda memodelkan berbagai komponen nama seseorang? Kamu tidak . Alih-alih memodelkan bidang yang terpisah untuk semua komponen nama hukum seseorang, ditambah salam, pilihan, nama informal, nama pengguna, nama panggilan, dan pegangan yang mereka sukai, hanya modelkan apa yang Anda pedulikan.

Kemungkinannya sistem Anda hanya benar-benar peduli paling banyak empat "nama" untuk seseorang:

  1. Sebuah Nama Tampilan yang memungkinkan mereka untuk mengetahui bahwa mereka login ke sistem.
  2. Sebuah Nama Informal dengan mana Anda akan mengatasi mereka pada panggilan telepon.
  3. Sebuah Nama Formal dengan yang Anda akan merujuk kepada mereka pada korespondensi.
  4. Sebuah Nama Sort yang mengekspresikan # 2 dengan cara yang akan dipesan dalam daftar.

Banyak sistem hanya akan menggunakan nama formal seseorang untuk # 1 dan # 2, meninggalkan satu-satunya nama yang Anda pedulikan sebagai "string yang mewakili nama pengguna" dan "string yang mewakili bagaimana yang pertama harus diurutkan."

Dari perspektif pemodelan data, tentukan hanya nilai-nilai yang benar-benar Anda butuhkan. Cara terbaik untuk mengoptimalkan penyimpanan nilai-nilai ini adalah detail implementasi - yang Anda hanya akan menyebabkan sakit kepala jika Anda terlalu mengoptimalkan. (Tentu, Anda "bisa" hanya menyimpan nama depan dan nama belakang, tetapi apa yang akan Anda lakukan untuk seseorang yang hanya memiliki satu nama?)

DougM
sumber
-1

Mari kita pertimbangkan ini dengan cara lain.

Sistem Anda harus terhubung ke sistem lain, tidak masalah seberapa fleksibel Anda jika mereka tidak. Jadi, apa sistem yang Anda miliki untuk mentransfer data?

Ketika saya menelepon dokter saya untuk membuat janji temu mereka menanyakan tanggal lahir saya, sistem kemudian menunjukkan kepada mereka daftar orang yang cocok, kemudian mereka menanyakan nama saya, terakhir meminta alamat saya untuk mengonfirmasi bahwa mereka telah memilih orang yang benar.

Dokter perlu mengetahui nama alamat saya ketika berbicara dengan saya; mereka juga perlu tahu nama untuk menulis surat jika mereka menulis kepada saya.

Karena itu caranya bukan hanya satu bidang teks tunggal yang memungkinkan spasi. Tidak ada alasan untuk memisahkan nama depan dari nama belakang, kecuali Anda akan memprosesnya dengan cara yang sama.

Ian
sumber
3
Anda sedang mengisi formulir klaim asuransi. Itu memiliki "Nama Belakang". Orang itu dari Jepang. Meskipun Anda memiliki versi transliterasi, Anda perlu memasukkan nama keluarga yang tepat di bidang. Kata apa itu?
@MichaelT, Apa yang harus dikatakan bahwa setiap orang memiliki nama keluarga?
Ian
2
Mendapatkan nama dari seseorang dari Jepang (atau banyak negara penamaan timur lainnya , nama keluarga diberikan terlebih dahulu. Begitulah cara penanganannya. Namun, ketika mengisi formulir medis, seseorang mungkin meminta nama keluarga dan nama yang diberikan berbeda. bidang - bagaimana Anda mengambil satu bidang dan mencocokkan dengan bidang yang tepat? Contoh lain yang diberikan adalah jika Anda menyortir nama keluarga dan diberi "José Carlos Fernando Almodóvar Soto" Anda perlu menyortir Almodóvardaripada Fernando.
@MichaelT, jadi ada kebutuhan untuk memproses Nama Keluarga secara terpisah, jadi berikan itu bidangnya sendiri dan harap orang yang mengetikkan rincian memahami penamaan timur.
Ian