powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / null значения
21 сообщений из 46, страница 2 из 2
null значения
    #35863510
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

ваша субд не умеет индексировать значения "NULL" ?

или в чом собственно проблема ?
...
Рейтинг: 0 / 0
null значения
    #35863655
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KRED
Ваши претензии мне не понятны

Да - приношу свои извинения. Погорячился... Совсем уже запутался с этой историографией... BTW,
KRED
нужно организовать "версионность объектов". Хотя детально в тему не въежал

Ну, дык ... Если ЭстЪ время и желание - вЪедтье и скажите свое веское слово...
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
null значения
    #35863819
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KREDmiksoft,

ваша субд не умеет индексировать значения "NULL" ?

или в чом собственно проблема ?Оракл, например, не хранит в индексе ссылки на записи, которые по всем полям, включенным в индекс, имеют значение NULL.
...
Рейтинг: 0 / 0
null значения
    #35864442
senleft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KOT MATPOCKuHsenleft, все-таки поясните, зачем для понятия "значение не задано" придумывать что-то новое?

Я не придумываю новое значение для понятия "значение не задано".

KOT MATPOCKuHЛибо у Вас так мало проблем, что Вы выдумываете себе новые, либо Вы не такой ("значение не задано") смысл вкладываете в "NULL".
Уточните, пожалуйста
Null я понимаю как "значение не известно".
Я всего лишь хочу избавиться от обработки null там, где это возможно. Например, в своей БД я могу вполне отказаться от null в поле "сумма предоплаты" и подставить значение по умолчанию "0" (не важно ввел ли это значение пользователь или сумма действительно неизвестна, на результат это не влияет). А вот с полем "дата предоплаты" отказаться от null не так уж и просто.
Поэтому я создал эту тему, чтобы узнать как другие поступают в данных ситуациях.
...
Рейтинг: 0 / 0
null значения
    #35865192
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
senleft
Я всего лишь хочу избавиться от обработки null там, где это возможно. Например, в своей БД я могу вполне отказаться от null в поле "сумма предоплаты" и подставить значение по умолчанию "0" (не важно ввел ли это значение пользователь или сумма действительно неизвестна, на результат это не влияет). А вот с полем "дата предоплаты" отказаться от null не так уж и просто.
Поэтому я создал эту тему, чтобы узнать как другие поступают в данных ситуациях.

Лично я такого же мнения как и вы :-)
Как минимум в двух выше приведённых примерах .
...
Рейтинг: 0 / 0
null значения
    #35865280
Фотография darkbird81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KREDsenleft
Я всего лишь хочу избавиться от обработки null там, где это возможно. Например, в своей БД я могу вполне отказаться от null в поле "сумма предоплаты" и подставить значение по умолчанию "0" (не важно ввел ли это значение пользователь или сумма действительно неизвестна, на результат это не влияет). А вот с полем "дата предоплаты" отказаться от null не так уж и просто.
Поэтому я создал эту тему, чтобы узнать как другие поступают в данных ситуациях.

Лично я такого же мнения как и вы :-)
Как минимум в двух выше приведённых примерах .

дык вроде это называется не авторизбавиться от обработки null там, где это возможно, а просто нормальное проектирование БД. ну не везде же позволять использовать нул, ведь это и так ясно.
...
Рейтинг: 0 / 0
null значения
    #35865910
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KREDsenleft
Я всего лишь хочу избавиться от обработки null там, где это возможно. Например, в своей БД я могу вполне отказаться от null в поле "сумма предоплаты" и подставить значение по умолчанию "0" (не важно ввел ли это значение пользователь или сумма действительно неизвестна, на результат это не влияет). А вот с полем "дата предоплаты" отказаться от null не так уж и просто.
Поэтому я создал эту тему, чтобы узнать как другие поступают в данных ситуациях.

Лично я такого же мнения как и вы :-)
Как минимум в двух выше приведённых примерах .У разработчиков стандарта SQL расходятся мнения с Вашим по части агрегатных функций. ;) В случае с AVG() как раз без NULL-значения будет трудно.
...
Рейтинг: 0 / 0
null значения
    #35867277
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_LУ разработчиков стандарта SQL расходятся мнения с Вашим по части агрегатных функций. ;) В случае с AVG() как раз без NULL-значения будет трудно.

А что мешает с влучае с AVG() отказаться от NULL для этой колонки ?

Если у меня есть ссылка на справочник то я могу использовать NULL , а AVG() как раз и не будет использоваться ... ибо мерять температуру по больнице нет смысла ...

если колонка с данными то нужно решить ставить на неё ограничение НОТ НУЛЛ или нет и от суда топтать в сторону использования АВГ ...

ЗЫ может подскажете в каких моментах использование НУЛЛ и АВГ/СУМ приводит к логической ошибке ?
...
Рейтинг: 0 / 0
null значения
    #35867537
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KREDа AVG() как раз и не будет использоваться ... ибо мерять температуру по больнице нет смысла ...
Хм. Вообще-то средняя величина предоплаты - это не "средняя температура по больнице" и должна считаться безо всяких нулей.
...
Рейтинг: 0 / 0
null значения
    #35867551
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KREDв каких моментах использование НУЛЛ и АВГ/СУМ приводит к логической ошибке ?
SUM поля NULL игнорирует. Поэтому само по себе использование SUM привести к ошибке не может, пока результат выполнения SUM не пытаться интерпретировать не как SUM.
AVG по сути SUM/COUNT, соответственно, беда будет в COUNT. Точнее, в интерпретации того COUNT, который сервер будет использовать в AVG.
Нахождение средней величины предоплаты Вам уже привели в качестве примера.
...
Рейтинг: 0 / 0
null значения
    #35867558
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
senleftНапример, в своей БД я могу вполне отказаться от null в поле "сумма предоплаты" и подставить значение по умолчанию "0"
Как раз все наоборот. Ограничение на значение этого поля - NULL или больше нуля.
...
Рейтинг: 0 / 0
null значения
    #35867585
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Васкецов,

Можно долго спорить на этот счот ... , но я не понимаю почему вы предираетесь к моим словам ...

в Вашем случае это "наверное" не подходит из за присутствия НУЛЛ в колонке , но почему :

авторКак раз все наоборот. Ограничение на значение этого поля - NULL или больше нуля.

Мне не понятно ...
Если принимать под значением НУЛЛ отсутствие платежа , то средние будет считатьса отлично (по присутствующим платежам , а не по всем возможным) ...
Но скажу сразу что легче было бы отказаться в этом случае от НУЛЛ и заноссить в колонку "0" .
Что не будет противоречить логике ... я не прав ?
...
Рейтинг: 0 / 0
null значения
    #35867588
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Васкецов
SUM поля NULL игнорирует. Поэтому само по себе использование SUM привести к ошибке не может, пока результат выполнения SUM не пытаться интерпретировать не как SUM.

букварик
Код: plaintext
1.
select count(*), count(sales), count(quota)
count(*) count(sales) count(quota)10109
Код: plaintext
1.
select sum(sales), sum(quota), (sum(sales)-sum(quota)), sum(sales-quota)
sum(sales) sum(quota) (sum(sales)-sum(quota)) sum(sales-quota)2893532270000193532117547

(sum(sales)-sum(quota)) != sum(sales-quota)
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
null значения
    #35867591
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ВаскецовKREDа AVG() как раз и не будет использоваться ... ибо мерять температуру по больнице нет смысла ...
Хм. Вообще-то средняя величина предоплаты - это не "средняя температура по больнице" и должна считаться безо всяких нулей.

Из каких убеждений вы решили использовать для такого поля значения НУЛЛ ?
...
Рейтинг: 0 / 0
null значения
    #35867714
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_Soft(sum(sales)-sum(quota)) != sum(sales-quota)
Вам не кажется, что сложение и вычитание NULL не то же самое, что SUM по полю, которое может принимать значения NULL?

KREDно я не понимаю почему вы предираетесь к моим словам
Я крайне редко придираюсь к словам из-за спортивного интереса. Возможно, я что-то невнятно объяснил. Тогда спросите об этом подробнее и яснее.

[quot KRED]
Мне не понятно ...
Если принимать под значением НУЛЛ отсутствие платежа , то средние будет считатьса отлично (по присутствующим платежам , а не по всем возможным) ...
Но скажу сразу что легче было бы отказаться в этом случае от НУЛЛ и заноссить в колонку "0" .
Что не будет противоречить логике ... я не прав ?
Во-первых, если Вы говорте о неком поле как о предоплате, то это либо плановое значение предоплаты, либо какая-то очень узкая специфика, потому что предоплат (предварительных платежей) фактически может быть много, а нормальный календарь платежей на одном поле не сделать даже в качестве дипломной работы.
Во-вторых, величина предоплаты либо положительна, либо предоплаты нет вообще. Нельзя заплатить 0 денег, это нонсенс. В этом смысле предоплата от обычного платежа ничем не отличается. Если не пытаться привнести логику, которую еще надо обосновать по месту, то вырисовывается совершенно четкий constraint, который я и написал выше. Чтобы использовать другой constraint, необходимо его обосновать. Вы в состоянии обосновать, что default 0 not null + лишняя логика в запросах будут чем-то лучше?
...
Рейтинг: 0 / 0
null значения
    #35867733
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KREDИз каких убеждений вы решили использовать для такого поля значения НУЛЛ ?
Контора может работать как с использованием предоплаты, так и без использования предоплаты. Предоплата в первом случае составляет 30%. Если Вы будете забабахивать нули в преоплату, то в один прекрасный момент обнаружите, что средняя предоплата почему-то стала 10%, а не 30%, и чтобы все вернуть на круги своя, придется править запросы, которые бы исключали договора без предоплаты из расчета средней предоплаты по договорам. Оно Вам надо?
...
Рейтинг: 0 / 0
null значения
    #35867872
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Васкецов,

по сути мне пока без разницы разрешено ли для предоплаты НУЛЛ или нет ... хотел узнать какой смысл вы в него вкладываете. И по сути наши взгляды схожи !

Но всё началось с того что я ответил

Senya_LУ разработчиков стандарта SQL расходятся мнения с Вашим по части агрегатных функций. ;) В случае с AVG() как раз без NULL-значения будет трудно.

На что я ответил КРЕД
А что мешает с влучае с AVG() отказаться от NULL для этой колонки ?

Если у меня есть ссылка на справочник то я могу использовать NULL , а AVG() как раз и не будет использоваться ... ибо мерять температуру по больнице нет смысла ...

если колонка с данными то нужно решить ставить на неё ограничение НОТ НУЛЛ или нет и от суда топтать в сторону использования АВГ ...

ЗЫ может подскажете в каких моментах использование НУЛЛ и АВГ/СУМ приводит к логической ошибке ?

В этом вы увидели где то красную тряпку ... и ответили мне
Сергей Васкецов
Хм. Вообще-то средняя величина предоплаты - это не "средняя температура по больнице" и должна считаться безо всяких нулей.

??????
...
Рейтинг: 0 / 0
null значения
    #35867897
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KREDпо сути мне пока без разницы разрешено ли для предоплаты НУЛЛ или нет ... хотел узнать какой смысл вы в него вкладываете.
Смысл NULL в предоплате по договору - что по договору не требуется (или не планируется, зависит от постановки) предоплата. Но а) она может быть, даже если и не требуется, б) фактически платежи по предоплате - это отдлельные записи, а не просто одно число.
...
Рейтинг: 0 / 0
null значения
    #35867904
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KREDСергей Васкецов
Хм. Вообще-то средняя величина предоплаты - это не "средняя температура по больнице" и должна считаться безо всяких нулей.
??????
Я имел в виду, что средняя величина предоплаты (особеннов разных разрезах, например, по менеджерам) может иметь вполне обоснованный интерес и не является сферическим конем в вакууме, в отличие от средней температуры по больнице, не имеющей большого смысла.
...
Рейтинг: 0 / 0
null значения
    #35869759
KOT MATPOCKuH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мое мнение по теме:

Возможность использования NULL-значений в полях - это инструмент. Пользоваться им или нет - решать, наверное, каждому самостоятельно.
Однако, если NULL используется, то нужно дать четкое определение значения NULL для конкретного поля. Если вместо NULL используется другое значение, то тоже нужно определить его понимание и использование.
Далее.
Автор и товарищи упоминают про удобство написания запросов или производительность (индексы), на что я отвечу - по аналогии с нормализацией. Сначала система сторится как нормализованная (+прозрачная +понятная), а потом начинаем заниматься тюнингом производительности и прочего => появляется денормализация.
Так и с NULLами: лучше использовать, но в некоторых отдельных случаях бывает удобнее заменить их на нечто другое: или на некоторое значение или таблицей с подчиненными, в т.ч. отсутствующими записями (неявный NULL).

И еще не обсуждалось в теме: с NULL для некоторых типов полей получаем выигрыш в занимаемом пространстве, а значит и небольшой выигрыш в производительности.

Про теоретиков могу сказать следующее: обычно данные таблицы (сущности, ...) рассматриваются как набор векторов в некотором пространства (размерность задается количеством полей). Тогда возникает вопрос и недопонимание: что значит одна или несколько координат вектора не заданы??!! Отсюда и непонимание теоретиками NULLов (ИМХО, как математика-теоретика в прошлом)
...
Рейтинг: 0 / 0
null значения
    #35965471
Jevgenijs.S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я работаю в сфере хранилищ данных...так вот у нас - в таблицах, данные из которых отображаются в отчетах, все поля not NULL....в плане дат - используем либо очень большую дату, либо очень маленькую - все зависит от использования конкретного поля. А в плане каких-то сумм-amount-ов - я видел такой подход - null заполняют средним значением, например:

Amount
-------
2
4
6
NULL

В таком случаи NULL заполняют 4 = ....(2+4+6)/3


http://www.ralphkimball.com/html/designtipsPDF/DesignTips2003/KimballDT43DealingWith.pdf
...
Рейтинг: 0 / 0
21 сообщений из 46, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / null значения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]