NULL или ноль?

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Kotъ-Begemotъ
Сообщения: 250
Зарегистрирован: 25 июл 2007, 21:33

NULL или ноль?

Сообщение Kotъ-Begemotъ » 23 фев 2008, 15:13

Вот есть таблица, к примеру пусть будет заказов. В ней есть поле CustomerID - исполнитель. Но пока заказ не отдан на исполнение поле пустое. То есть NULL. Вопрос в том, оставлять такие поля NULL или лучше не допускать значений NULL в таблицах, и ставить условие DEFAULT 0 чтобы поле было определено? С одной стороны вроде можно и так и сяк, с другой всё-таки NULL это по-русски говоря значение "ХЗ", со всеми возможными вытекающими....

ЗЫ. И с праздником всех причастных и не очень! :) С днём СА и ВМФ! :)))

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Re: NULL или ноль?

Сообщение stix-s » 23 фев 2008, 16:18

Kotъ-Begemotъ писал(а):Вот есть таблица, к примеру пусть будет заказов. В ней есть поле CustomerID - исполнитель. Но пока заказ не отдан на исполнение поле пустое. То есть NULL. Вопрос в том, оставлять такие поля NULL или лучше не допускать значений NULL в таблицах, и ставить условие DEFAULT 0 чтобы поле было определено? С одной стороны вроде можно и так и сяк, с другой всё-таки NULL это по-русски говоря значение "ХЗ", со всеми возможными вытекающими....

ЗЫ. И с праздником всех причастных и не очень! :) С днём СА и ВМФ! :)))
лично я предпочитаю NULL избегать - слишком неоднозначен
а по дефолту выставляю значение, которое никак не должно там появиться, например (-1)
но все зависит от конкретной задачи

Attid
Спец
Сообщения: 377
Зарегистрирован: 14 ноя 2006, 09:58

Сообщение Attid » 24 фев 2008, 10:30

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

ЗЫ использую только null значения там где они не нужны мне не нравятся.

Ответить