Banyak basis data saya memiliki bidang yang didefinisikan sebagai varchars. Ini tidak banyak masalah sejak saya tinggal dan bekerja di Amerika (di mana satu-satunya bahasa yang ada adalah "Amerika". Ahem )
Setelah bekerja dengan basis data selama sekitar 5 tahun, saya akhirnya menemukan saya mengalami masalah dengan sifat terbatas bidang varchar dan saya harus memodifikasi bidang saya untuk menyimpan data sebagai nvarchars. Setelah harus membuat pembaruan lain ke tabel, mengubah bidang varchar ke nvarchar, saya baru saja berpikir - mengapa kita masih melakukannya dengan cara ini? Saya sudah sejak lama membuat keputusan mental untuk mendefinisikan semua bidang teks baru saya menjadi nvarchar, bukan varchar, yang merupakan apa yang saya pelajari dari buku teks ketika saya berada di sekolah 10 tahun yang lalu.
Ini tahun 2011 dan ada rilis baru SQL Server tahun lalu. Mengapa kita terus mendukung tipe data varchar ketika kita dapat / seharusnya menggunakan nvarchar?
Saya tahu bahwa sering diperdebatkan bahwa nvarchars "dua kali lebih besar" dari varchars, jadi penggunaan ruang penyimpanan bisa menjadi salah satu argumen untuk mempertahankan varcars.
Namun, pengguna saat ini dapat mendefinisikan nvarchars mereka untuk menyimpan data sebagai UTF-8, bukan UTF-16 default jika mereka ingin menghemat ruang penyimpanan. Ini akan memungkinkan untuk pengkodean 8-bit jika itu terutama diinginkan, sambil memberikan jaminan bahwa karakter langka 2-8 byte yang dimasukkan ke dalam DB mereka tidak akan merusak apa pun.
Apakah saya melewatkan sesuatu? Apakah ada alasan bagus mengapa ini tidak berubah selama 15-20 tahun terakhir?