2010-03-01 3 views
3

Данные в моем dabatase поступают из внешнего источника и там, где когда-либо не было данных, я сохраняю NULL в этих местах. Может ли кто-нибудь сказать мне, есть ли какие-либо последствия при использовании NULL для представления пустого значения? Должен ли я следовать другому соглашению, например 'data_not_available'? или что-то типа того?Использование NULL в MySQL

Может кто-нибудь предложить?

ответ

2

Я всегда использовал NULL. Я видел аргументы в пользу того, что NULL был взломом и никогда не должен был использоваться для массового использования, и теперь он вышел из-под контроля, но я не могу придумать, как лучше обращаться с чем-то как «без ценности».

В конце концов, как вы можете представить число как не имеющее значения? 0 - значение. -1 - значение. -9999999 - значение.

Также внешние ключи зависят от значения NULL, чтобы обозначить, что нет соответствующей записи.

+0

точно. Даже я не могу назвать что-то лучше, чем NULL – JPro

1

Запись в Википедии по адресу NULL in SQL на самом деле очень информативна. NULL допустим, но часто может указывать на проблемы с дизайном базы данных, где данные должны находиться в отдельной таблице с помощью FK.

+0

, что вы предлагаете? Например, – JPro

+0

, скажем, есть поле с 'Description_of_Item' и сказать, что клиент не хочет заполнять его, для этого типа это ОК, чтобы сохранить 'NULL'? – JPro

+0

вопрос вкуса/возможности. Я мог бы использовать NULL, а другие - описания в другой таблице. –

1

Концептуально, NULL означает «недостающее неизвестное значение», и оно трактуется несколько иначе, чем другие значения. Например, чтобы проверить NULL в MySQL, вы не можете использовать операторы арифметического сравнения, такие как =, <, или <>.

Поскольку у вас будут столбцы, которые могут иметь «отсутствующие или нечеткие» значения, вы должны установить их для приема NULL. С другой стороны, таблица со многими столбцами NULL может указывать на необходимость рефинансирования этой таблицы в меньшие таблицы, которые лучше описывают сущности, которые они представляют.

Обратите внимание, что в целом использование соглашения, такого как 'data_not_available', не рекомендуется. Использование NULL - это соглашение, и ваша СУБД уже знает об этом.

+0

спасибо за предложение – JPro

Смежные вопросы