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.
Jawaban:
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.
sumber
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.
sumber
Saya biasanya menggunakan varchar (255) (255 adalah panjang maksimum tipe varchar di MySQL).
sumber
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.
sumber
@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".
sumber
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 ;
The NHS menggunakan 70 karakter untuk nama pasien
Kantor Paspor mengizinkan 30 + 30 pertama / terakhir dan Surat Izin Mengemudi (DVLA) adalah total 30.
sumber
Kami menggunakan 50.
sumber
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.
sumber
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.
sumber
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.
sumber
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.
sumber