Null служить дуже поважною метою представляти відсутність цінності.
Я скажу, що я є найбільш голосовою людиною, яку я знаю про зловживання нулем та всі головні болі та страждання, які вони можуть спричинити, особливо якщо вони вживаються в добровільному порядку.
Моя особиста позиція полягає в тому, що люди можуть використовувати нулі лише тоді, коли вони можуть виправдати це необхідним і доречним.
Приклад, що виправдовує нулі:
Дата смерті, як правило, є нульовим полем. Можливі три ситуації з датою смерті. Або людина померла, і дата відома, людина померла, і дата невідома, або людина не померла, а тому дата смерті не існує.
Дата смерті також є полем DateTime і не має значення "невідомо" або "порожнє". У нього є дата за замовчуванням, яка з’являється, коли ви вносите новий час, який змінюється залежно від використовуваної мови, але технічно є ймовірність, що людина насправді загинув у той час і позначив би ваше "порожнє значення", якби ви використовувати дату за замовчуванням.
Дані повинні бути належним чином відображати ситуацію.
Людина померла дата смерті відома (9.3.1984)
Простий, "9.09.1984"
Людина померла дата смерті невідома
То що найкраще? Нульовий , "0/0/0000" або "01 / 01/1869 "(або все, що вказано за замовчуванням?)
Особа не померла, дата смерті не застосовується
То що найкраще? Нульовий , "0/0/0000" або "01 / 01/1869 "(або все, що вказано за замовчуванням?)
Тож давайте подумаємо про кожне значення над ...
- Нуль , це має наслідки та проблеми, з якими потрібно бути обережними, випадково намагаючись маніпулювати нею, не підтверджуючи, що спочатку це не нульово, наприклад, викине виняток, але це також найкраще відображає реальну ситуацію ... Якщо людина не загинула дата смерті не існує ... це нічого ... це недійсне ...
- 0/0/0000 , Це може бути добре в деяких мовах і навіть може бути відповідним поданням про відсутність дати. На жаль, деякі мови та валідація відкинуть це як недійсний час, що у багатьох випадках робить його недійсним.
- 1/1/1869 (або будь-яке значення для дати за замовчуванням) , проблема тут полягає в тому, що це стає складним в обробці. Ви можете використати це як свою відсутність значущості, за винятком того, що трапиться, якщо я хочу відфільтрувати всі свої записи, у яких я не маю дати смерті? Я міг легко відфільтрувати людей, які насправді померли в цю дату, що може спричинити проблеми з цілісністю даних.
Той факт , іноді ви чи потрібно не представляти нічого і впевнений , що іноді змінна типу добре працює, але часто типи змінних повинні бути в змозі уявити нічого.
Якщо у мене немає яблук, у мене є 0 яблук, але що робити, якщо я не знаю, скільки яблук у мене?
У будь-якому випадку нуль зловживається і потенційно небезпечно, але це часом потрібно. У багатьох випадках це лише за замовчуванням, оскільки поки я не надаю значення, відсутність значення, і щось потрібно представляти. (Нуль)