Null memiliki tujuan yang sangat valid untuk mewakili kurangnya nilai.
Saya akan mengatakan saya adalah orang yang paling vokal yang saya tahu tentang penyalahgunaan nol dan semua sakit kepala dan penderitaan yang dapat mereka sebabkan terutama ketika digunakan secara bebas.
Sikap pribadi saya adalah orang dapat menggunakan nulls hanya ketika mereka dapat membenarkan itu perlu dan sesuai.
Contoh justifikasi nol:
Tanggal Kematian biasanya adalah bidang yang tidak dapat dibatalkan. Ada tiga kemungkinan situasi dengan tanggal kematian. Entah orang itu telah meninggal dan tanggalnya diketahui, orang itu telah meninggal dan tanggalnya tidak diketahui, atau orang itu tidak mati dan karenanya tanggal kematian tidak ada.
Date of Death juga merupakan bidang DateTime dan tidak memiliki nilai "tidak dikenal" atau "kosong". Itu memang memiliki tanggal default yang muncul ketika Anda membuat datetime baru yang bervariasi berdasarkan bahasa yang digunakan, tetapi secara teknis ada kemungkinan orang itu benar-benar mati pada waktu itu dan akan ditandai sebagai "nilai kosong" Anda jika Anda ingin gunakan tanggal default.
Data perlu mewakili situasi dengan benar.
Orang meninggal Tanggal kematian diketahui (3/9/1984)
Sederhana, '3/9/1984'
Orang meninggal Tanggal kematian tidak diketahui
Jadi apa yang terbaik? Null , '0/0/0000', atau '01 / 01/1869 '(atau apa pun nilai default Anda?)
Orang tidak mati, tanggal kematian tidak berlaku
Jadi apa yang terbaik? Null , '0/0/0000', atau '01 / 01/1869 '(atau apa pun nilai default Anda?)
Jadi mari kita pikirkan setiap nilai lebih dari ...
- Null , ia memiliki implikasi dan kekhawatiran yang perlu Anda waspadai, tanpa sengaja mencoba memanipulasi tanpa memastikan itu bukan nol dulu misalnya akan melempar pengecualian, tetapi juga terbaik mewakili situasi aktual ... Jika orang tersebut tidak mati tanggal kematian tidak ada ... tidak ada ... itu nol ...
- 0/0/0000 , ini bisa oke dalam beberapa bahasa, dan bahkan bisa menjadi representasi yang sesuai dari tanggal. Sayangnya beberapa bahasa dan validasi akan menolak ini sebagai waktu yang tidak valid yang menjadikannya tidak masuk dalam banyak kasus.
- 1/1/1869 (atau apa pun nilai datetime default Anda) , masalahnya adalah sulit untuk ditangani. Anda bisa menggunakannya sebagai nilai nilai yang kurang, kecuali apa yang terjadi jika saya ingin memfilter semua catatan saya, saya tidak memiliki tanggal kematian? Saya dapat dengan mudah menyaring orang yang benar-benar mati pada tanggal tersebut yang dapat menyebabkan masalah integritas data.
Faktanya kadang-kadang Anda Apakah perlu untuk mewakili apa-apa dan yakin kadang-kadang jenis variabel bekerja dengan baik untuk itu, tapi jenis sering variabel harus mampu mewakili apa-apa.
Jika saya tidak memiliki apel, saya memiliki 0 apel, tetapi bagaimana jika saya tidak tahu berapa banyak apel yang saya miliki?
Bagaimanapun, null dilecehkan dan berpotensi berbahaya, tetapi kadang-kadang diperlukan. Ini hanya default dalam banyak kasus karena sampai saya memberikan nilai, kurangnya nilai dan sesuatu yang perlu untuk mewakilinya. (Batal)