Berapa batas panjang yang wajar pada bidang "Nama" orang?

140

Saya memiliki formulir web sederhana yang memungkinkan pengguna yang tidak berkepentingan memasukkan informasi mereka, termasuk nama. Saya memberi nama field batas 50 karakter agar sesuai dengan tabel database saya dimana field tersebut adalah varchar (50), tapi kemudian saya mulai bertanya-tanya.

Apakah lebih tepat menggunakan sesuatu seperti jenis kolom Teks atau haruskah saya membatasi panjang nama untuk sesuatu yang masuk akal?

Saya menggunakan SQL Server 2005, jika itu penting dalam tanggapan Anda.

EDIT: Saya tidak melihat pertanyaan yang lebih luas ini tentang masalah serupa.

EndangeredMassa
sumber
1
Periksa pertanyaan terkait ini untuk banyak diskusi tentang subjek.
Chris Marasti-Georg
2
Sesuatu yang perlu diperhatikan, di era globalisasi ini varchar biasanya BUKAN tipe data yang benar, kemungkinan besar Anda harus menggunakan nvarchar.
Tao
@ Tao: Karena dia menggunakan MS SQL Server, saya setuju. Tetapi VARCHAR adalah tipe data yang tepat dalam implementasi SQL lain yang memiliki dukungan lebih baik untuk UTF-8.
dan04

Jawaban:

145

Katalog Standar Data Pemerintah Inggris menyarankan 35 karakter untuk setiap Nama Diberikan dan Nama Keluarga, atau 70 karakter untuk satu bidang untuk menampung Nama Lengkap.

Ian Nelson
sumber
3
Tautan perlu diperbarui per 22 Oktober 2010. Saya mencari di Google: site: *. Gov.uk Nama "35 karakter" dan menemukan dokumen ini keadilan.gov.uk/guidance/docs/electoral-reg-standards.pdf
Tony R
Tautan mereka tampaknya sangat buruk ... per 8/2012: webarchive.nationalarchives.gov.uk/+/http://…
Thomas B
6
Nama lengkap terpanjang yang "masuk akal" yang saya temukan adalah "Gisele Marie-Louise Marguerite LaFleche" (panjang 39 byte).
pengguna1154664
Sedikit lebih besar 54 karakter: gw.geneanet.org/…
mestachs
3
Selandia Baru membatasi nama lengkap: panjangnya harus kurang dari 100 karakter, termasuk spasi, dan tidak boleh berisi simbol atau angka. Saya kira tanda hubung diperbolehkan dalam nama keluarga.
Glutnix
27

Saya tahu saya terlambat untuk yang ini, tetapi saya akan menambahkan komentar ini, karena orang lain mungkin datang ke sini di masa depan dengan pertanyaan serupa.

Waspadalah terhadap ukuran kolom tweaker tergantung pada lokal. Sebagai permulaan, itu membuat Anda menghadapi mimpi buruk pemeliharaan, mengesampingkan fakta bahwa orang bermigrasi, dan membawa nama mereka bersama mereka.

Misalnya, orang Spanyol dengan nama keluarga tambahan tersebut dapat pindah dan tinggal di negara berbahasa Inggris, dan dapat mengharapkan penggunaan nama lengkap mereka secara wajar. Orang Rusia memiliki patronim selain nama belakang mereka, beberapa nama Afrika bisa jauh lebih panjang daripada kebanyakan nama Eropa.

Lakukan dengan membuat setiap kolom selebar mungkin, dengan mempertimbangkan potensi jumlah baris. Saya menggunakan 40 karakter masing-masing untuk nama depan, nama depan dan belakang lainnya dan tidak pernah menemukan masalah.

Noel Cosgrave
sumber
Terima kasih atas jawabannya, meskipun sudah lama.
EndangeredMassa
9

Saya biasanya menggunakan varchar (255) (255 adalah panjang maksimum tipe varchar di MySQL).

pix0r
sumber
31
Dan apakah Anda juga mencadangkan 255 karakter ruang di GUI Anda dan media lain tempat nama depan / belakang ditampilkan? ;-)
AndrewBourgeois
2
Saya dulu berpikir: "Mengapa tidak selalu menggunakan varchar (255)?" Sekarang saya menyadari batasan panjang sebagian besar untuk UI, dan batasan yang dapat diandalkan oleh desainer saat mendesain UI mereka, kemudian ini adalah tentang menggunakan terlalu banyak ruang dalam database.
jdg
6

Jika itu nama lengkap dalam satu bidang, saya biasanya menggunakan 128 - 64/64 untuk pertama dan terakhir di bidang terpisah - Anda tidak akan pernah tahu.

Greg Hurlman
sumber
6

@Ian Nelson: Saya ingin tahu apakah orang lain melihat masalah di sana.

Katakanlah Anda telah membagi bidang. Itu berarti total 70 karakter, 35 untuk nama depan dan 35 untuk nama belakang. Namun, jika Anda memiliki satu bidang, Anda mengabaikan spasi yang memisahkan nama depan dan belakang, singkatnya mengubah Anda dengan 1 karakter. Tentu, ini "hanya" satu karakter, tapi itu bisa membuat perbedaan antara seseorang yang memasukkan nama lengkapnya dan seseorang yang tidak. Oleh karena itu, saya akan mengubah saran itu menjadi "35 karakter untuk masing-masing Nama Diberikan dan Nama Keluarga, atau 71 karakter untuk satu bidang untuk menampung Nama Lengkap".

Thomas Owens
sumber
2
Inti dari mengikuti dokumen itu adalah agar Anda dapat beroperasi dengan sistem pemerintah Inggris lainnya, sehingga Anda tidak dapat secara individual menaikkan 70 menjadi 71 dan menyebutnya sehari, jika tidak sistem dengan batas 70 karakter akan memotong teks Anda. (Anda tidak seharusnya menyimpan data dalam kedua bentuk dalam sistem Anda sendiri.) Ini sebenarnya menjadi lebih buruk, karena Nama Lengkap tidak hanya mencakup Keluarga / Diberikan, tetapi juga Judul dan Sufiks, yang juga memiliki batas 35 karakter masing-masing, untuk 143 karakter maksimum yang menyenangkan di bidang tambahan. Sucks menjadi pengembang yang harus bertukar data dengan kedua bentuk penyimpanan nama.
mmitchell
3
Jelas panduan ini ditulis dari harapan bahwa seseorang dapat memiliki Nama Diberikan yang panjang (hingga 35 karakter) atau Nama Keluarga yang panjang (hingga 35 karakter), tetapi tidak mungkin memiliki KEDUA bagian dari nama yang terlalu panjang.
Ian Nelson
3

Di Inggris Raya, ada beberapa standar pemerintah yang berhasil menangani sebagian besar penduduk Inggris - Kantor Paspor, Pengemudi & Badan Perizinan Kendaraan, kantor Pemungutan Suara Akta, dan NHS. Jelas mereka menggunakan standar yang berbeda.

Mengubah nama Anda dengan Deed Poll memungkinkan 300 karakter ;

Tidak ada batasan hukum untuk panjang nama Anda, tetapi kami memberlakukan batas 300 karakter (termasuk spasi) untuk nama lengkap Anda.

The NHS menggunakan 70 karakter untuk nama pasien

NAMA PASIEN
Format / panjang: maks. 70

Kantor Paspor mengizinkan 30 + 30 pertama / terakhir dan Surat Izin Mengemudi (DVLA) adalah total 30.

Perhatikan bahwa organisasi lain akan memiliki batasan mereka sendiri tentang apa yang akan mereka tunjukkan pada dokumen yang mereka hasilkan - untuk Kantor Paspor HM batasnya adalah masing-masing 30 karakter untuk nama depan dan nama belakang Anda, dan untuk DVLA batasnya adalah total 30 karakter untuk Anda nama lengkap.

Steve Cooper
sumber
2

Kami menggunakan 50.

pembuat kode1
sumber
2

Apa yang sebenarnya Anda tanyakan adalah pertanyaan terkait, tetapi sangat berbeda: seberapa sering saya ingin memotong nama agar sesuai dengan database? Jawabannya bergantung pada frekuensi panjang nama yang berbeda serta panjang maksimum yang dipilih. Kekhawatiran ini diimbangi dengan kekhawatiran tentang sumber daya yang digunakan oleh database. Mempertimbangkan betapa sedikit perbedaan overhead yang ada antara panjang maks yang berbeda untuk bidang varchar, saya biasanya keliru di sisi tidak pernah dipaksa untuk memotong nama dan membuat bidang sebesar yang saya berani.

Baji
sumber
1

Perhatikan bahwa banyak budaya memiliki 'nama keluarga kedua' yang sering disebut dengan nama keluarga. Misalnya, jika Anda berurusan dengan orang Spanyol, mereka akan menghargai nama keluarga yang dipisahkan dari 'nama keluarga' mereka.

Taruhan terbaik adalah menentukan tipe data untuk komponen nama, gunakan untuk tipe data untuk nama belakang dan tweak tergantung pada lokal.

ColinYounger
sumber
Tidak ada keuntungan membuat batas lebih kecil di lokal yang secara statistik memiliki nilai lebih kecil - ukuran bidang tidak memengaruhi ruang yang diambil, kecuali beberapa nilai benar-benar mengambil karakter ekstra yang diizinkan (dan itu berarti Anda tetap membuat pilihan yang tepat) !
Tao
0

Nama depan rata-rata sekitar 6 huruf. Sisanya 43 untuk nama belakang. :) Sepertinya Anda mungkin bisa mempersingkatnya jika Anda suka.

Pertanyaan utamanya adalah berapa banyak baris yang menurut Anda akan Anda miliki? Saya tidak berpikir varchar (50) akan membunuh Anda sampai Anda mendapatkan beberapa juta baris.

Craig
sumber
6
Jika Anda memiliki 50 juta nilai antara 10 dan 15 karakter dalam kolom varchar (20), dan 50 juta nilai yang sama dalam kolom varchar (50), nilai tersebut akan menempati ruang yang persis sama. Itulah inti dari varchar, sebagai lawan dari char.
Tao
@Tao lihat stackoverflow.com/questions/11132357/…
Habeeb Perwad
0

tergantung pada siapa yang akan menggunakan database Anda, misalnya nama Afrika akan dilakukan dengan varchar (20) untuk memisahkan nama belakang dan nama depan. Namun ini berbeda dari satu negara ke negara lain tetapi demi menghemat sumber daya database dan memori Anda, pisahkan kolom nama belakang dan nama depan dan gunakan varchar (30) pikir itu akan berhasil.

Themba Mabaso
sumber