|
|
|
null значения
|
|||
|---|---|---|---|
|
#18+
miksoft, ваша субд не умеет индексировать значения "NULL" ? или в чом собственно проблема ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2009, 23:49 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
KRED Ваши претензии мне не понятны Да - приношу свои извинения. Погорячился... Совсем уже запутался с этой историографией... BTW, KRED нужно организовать "версионность объектов". Хотя детально в тему не въежал Ну, дык ... Если ЭстЪ время и желание - вЪедтье и скажите свое веское слово... _________________ "Helo, word!" - 17 errors 56 warnings ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2009, 07:03 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
KREDmiksoft, ваша субд не умеет индексировать значения "NULL" ? или в чом собственно проблема ?Оракл, например, не хранит в индексе ссылки на записи, которые по всем полям, включенным в индекс, имеют значение NULL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2009, 09:37 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
KOT MATPOCKuHsenleft, все-таки поясните, зачем для понятия "значение не задано" придумывать что-то новое? Я не придумываю новое значение для понятия "значение не задано". KOT MATPOCKuHЛибо у Вас так мало проблем, что Вы выдумываете себе новые, либо Вы не такой ("значение не задано") смысл вкладываете в "NULL". Уточните, пожалуйста Null я понимаю как "значение не известно". Я всего лишь хочу избавиться от обработки null там, где это возможно. Например, в своей БД я могу вполне отказаться от null в поле "сумма предоплаты" и подставить значение по умолчанию "0" (не важно ввел ли это значение пользователь или сумма действительно неизвестна, на результат это не влияет). А вот с полем "дата предоплаты" отказаться от null не так уж и просто. Поэтому я создал эту тему, чтобы узнать как другие поступают в данных ситуациях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2009, 12:43 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
senleft Я всего лишь хочу избавиться от обработки null там, где это возможно. Например, в своей БД я могу вполне отказаться от null в поле "сумма предоплаты" и подставить значение по умолчанию "0" (не важно ввел ли это значение пользователь или сумма действительно неизвестна, на результат это не влияет). А вот с полем "дата предоплаты" отказаться от null не так уж и просто. Поэтому я создал эту тему, чтобы узнать как другие поступают в данных ситуациях. Лично я такого же мнения как и вы :-) Как минимум в двух выше приведённых примерах . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2009, 15:53 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
KREDsenleft Я всего лишь хочу избавиться от обработки null там, где это возможно. Например, в своей БД я могу вполне отказаться от null в поле "сумма предоплаты" и подставить значение по умолчанию "0" (не важно ввел ли это значение пользователь или сумма действительно неизвестна, на результат это не влияет). А вот с полем "дата предоплаты" отказаться от null не так уж и просто. Поэтому я создал эту тему, чтобы узнать как другие поступают в данных ситуациях. Лично я такого же мнения как и вы :-) Как минимум в двух выше приведённых примерах . дык вроде это называется не авторизбавиться от обработки null там, где это возможно, а просто нормальное проектирование БД. ну не везде же позволять использовать нул, ведь это и так ясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2009, 16:15 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
KREDsenleft Я всего лишь хочу избавиться от обработки null там, где это возможно. Например, в своей БД я могу вполне отказаться от null в поле "сумма предоплаты" и подставить значение по умолчанию "0" (не важно ввел ли это значение пользователь или сумма действительно неизвестна, на результат это не влияет). А вот с полем "дата предоплаты" отказаться от null не так уж и просто. Поэтому я создал эту тему, чтобы узнать как другие поступают в данных ситуациях. Лично я такого же мнения как и вы :-) Как минимум в двух выше приведённых примерах .У разработчиков стандарта SQL расходятся мнения с Вашим по части агрегатных функций. ;) В случае с AVG() как раз без NULL-значения будет трудно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2009, 20:32 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
Senya_LУ разработчиков стандарта SQL расходятся мнения с Вашим по части агрегатных функций. ;) В случае с AVG() как раз без NULL-значения будет трудно. А что мешает с влучае с AVG() отказаться от NULL для этой колонки ? Если у меня есть ссылка на справочник то я могу использовать NULL , а AVG() как раз и не будет использоваться ... ибо мерять температуру по больнице нет смысла ... если колонка с данными то нужно решить ставить на неё ограничение НОТ НУЛЛ или нет и от суда топтать в сторону использования АВГ ... ЗЫ может подскажете в каких моментах использование НУЛЛ и АВГ/СУМ приводит к логической ошибке ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2009, 13:05 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
KREDа AVG() как раз и не будет использоваться ... ибо мерять температуру по больнице нет смысла ... Хм. Вообще-то средняя величина предоплаты - это не "средняя температура по больнице" и должна считаться безо всяких нулей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2009, 14:10 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
KREDв каких моментах использование НУЛЛ и АВГ/СУМ приводит к логической ошибке ? SUM поля NULL игнорирует. Поэтому само по себе использование SUM привести к ошибке не может, пока результат выполнения SUM не пытаться интерпретировать не как SUM. AVG по сути SUM/COUNT, соответственно, беда будет в COUNT. Точнее, в интерпретации того COUNT, который сервер будет использовать в AVG. Нахождение средней величины предоплаты Вам уже привели в качестве примера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2009, 14:15 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
senleftНапример, в своей БД я могу вполне отказаться от null в поле "сумма предоплаты" и подставить значение по умолчанию "0" Как раз все наоборот. Ограничение на значение этого поля - NULL или больше нуля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2009, 14:16 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов, Можно долго спорить на этот счот ... , но я не понимаю почему вы предираетесь к моим словам ... в Вашем случае это "наверное" не подходит из за присутствия НУЛЛ в колонке , но почему : авторКак раз все наоборот. Ограничение на значение этого поля - NULL или больше нуля. Мне не понятно ... Если принимать под значением НУЛЛ отсутствие платежа , то средние будет считатьса отлично (по присутствующим платежам , а не по всем возможным) ... Но скажу сразу что легче было бы отказаться в этом случае от НУЛЛ и заноссить в колонку "0" . Что не будет противоречить логике ... я не прав ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2009, 14:26 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов SUM поля NULL игнорирует. Поэтому само по себе использование SUM привести к ошибке не может, пока результат выполнения SUM не пытаться интерпретировать не как SUM. букварик Код: plaintext 1. Код: plaintext 1. (sum(sales)-sum(quota)) != sum(sales-quota) _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2009, 14:27 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
Сергей ВаскецовKREDа AVG() как раз и не будет использоваться ... ибо мерять температуру по больнице нет смысла ... Хм. Вообще-то средняя величина предоплаты - это не "средняя температура по больнице" и должна считаться безо всяких нулей. Из каких убеждений вы решили использовать для такого поля значения НУЛЛ ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2009, 14:28 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
Ex_Soft(sum(sales)-sum(quota)) != sum(sales-quota) Вам не кажется, что сложение и вычитание NULL не то же самое, что SUM по полю, которое может принимать значения NULL? KREDно я не понимаю почему вы предираетесь к моим словам Я крайне редко придираюсь к словам из-за спортивного интереса. Возможно, я что-то невнятно объяснил. Тогда спросите об этом подробнее и яснее. [quot KRED] Мне не понятно ... Если принимать под значением НУЛЛ отсутствие платежа , то средние будет считатьса отлично (по присутствующим платежам , а не по всем возможным) ... Но скажу сразу что легче было бы отказаться в этом случае от НУЛЛ и заноссить в колонку "0" . Что не будет противоречить логике ... я не прав ? Во-первых, если Вы говорте о неком поле как о предоплате, то это либо плановое значение предоплаты, либо какая-то очень узкая специфика, потому что предоплат (предварительных платежей) фактически может быть много, а нормальный календарь платежей на одном поле не сделать даже в качестве дипломной работы. Во-вторых, величина предоплаты либо положительна, либо предоплаты нет вообще. Нельзя заплатить 0 денег, это нонсенс. В этом смысле предоплата от обычного платежа ничем не отличается. Если не пытаться привнести логику, которую еще надо обосновать по месту, то вырисовывается совершенно четкий constraint, который я и написал выше. Чтобы использовать другой constraint, необходимо его обосновать. Вы в состоянии обосновать, что default 0 not null + лишняя логика в запросах будут чем-то лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2009, 14:59 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
KREDИз каких убеждений вы решили использовать для такого поля значения НУЛЛ ? Контора может работать как с использованием предоплаты, так и без использования предоплаты. Предоплата в первом случае составляет 30%. Если Вы будете забабахивать нули в преоплату, то в один прекрасный момент обнаружите, что средняя предоплата почему-то стала 10%, а не 30%, и чтобы все вернуть на круги своя, придется править запросы, которые бы исключали договора без предоплаты из расчета средней предоплаты по договорам. Оно Вам надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2009, 15:04 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов, по сути мне пока без разницы разрешено ли для предоплаты НУЛЛ или нет ... хотел узнать какой смысл вы в него вкладываете. И по сути наши взгляды схожи ! Но всё началось с того что я ответил Senya_LУ разработчиков стандарта SQL расходятся мнения с Вашим по части агрегатных функций. ;) В случае с AVG() как раз без NULL-значения будет трудно. На что я ответил КРЕД А что мешает с влучае с AVG() отказаться от NULL для этой колонки ? Если у меня есть ссылка на справочник то я могу использовать NULL , а AVG() как раз и не будет использоваться ... ибо мерять температуру по больнице нет смысла ... если колонка с данными то нужно решить ставить на неё ограничение НОТ НУЛЛ или нет и от суда топтать в сторону использования АВГ ... ЗЫ может подскажете в каких моментах использование НУЛЛ и АВГ/СУМ приводит к логической ошибке ? В этом вы увидели где то красную тряпку ... и ответили мне Сергей Васкецов Хм. Вообще-то средняя величина предоплаты - это не "средняя температура по больнице" и должна считаться безо всяких нулей. ?????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2009, 15:37 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
KREDпо сути мне пока без разницы разрешено ли для предоплаты НУЛЛ или нет ... хотел узнать какой смысл вы в него вкладываете. Смысл NULL в предоплате по договору - что по договору не требуется (или не планируется, зависит от постановки) предоплата. Но а) она может быть, даже если и не требуется, б) фактически платежи по предоплате - это отдлельные записи, а не просто одно число. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2009, 15:47 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
KREDСергей Васкецов Хм. Вообще-то средняя величина предоплаты - это не "средняя температура по больнице" и должна считаться безо всяких нулей. ?????? Я имел в виду, что средняя величина предоплаты (особеннов разных разрезах, например, по менеджерам) может иметь вполне обоснованный интерес и не является сферическим конем в вакууме, в отличие от средней температуры по больнице, не имеющей большого смысла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2009, 15:49 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
Мое мнение по теме: Возможность использования NULL-значений в полях - это инструмент. Пользоваться им или нет - решать, наверное, каждому самостоятельно. Однако, если NULL используется, то нужно дать четкое определение значения NULL для конкретного поля. Если вместо NULL используется другое значение, то тоже нужно определить его понимание и использование. Далее. Автор и товарищи упоминают про удобство написания запросов или производительность (индексы), на что я отвечу - по аналогии с нормализацией. Сначала система сторится как нормализованная (+прозрачная +понятная), а потом начинаем заниматься тюнингом производительности и прочего => появляется денормализация. Так и с NULLами: лучше использовать, но в некоторых отдельных случаях бывает удобнее заменить их на нечто другое: или на некоторое значение или таблицей с подчиненными, в т.ч. отсутствующими записями (неявный NULL). И еще не обсуждалось в теме: с NULL для некоторых типов полей получаем выигрыш в занимаемом пространстве, а значит и небольшой выигрыш в производительности. Про теоретиков могу сказать следующее: обычно данные таблицы (сущности, ...) рассматриваются как набор векторов в некотором пространства (размерность задается количеством полей). Тогда возникает вопрос и недопонимание: что значит одна или несколько координат вектора не заданы??!! Отсюда и непонимание теоретиками NULLов (ИМХО, как математика-теоретика в прошлом) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2009, 07:26 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
Я работаю в сфере хранилищ данных...так вот у нас - в таблицах, данные из которых отображаются в отчетах, все поля not NULL....в плане дат - используем либо очень большую дату, либо очень маленькую - все зависит от использования конкретного поля. А в плане каких-то сумм-amount-ов - я видел такой подход - null заполняют средним значением, например: Amount ------- 2 4 6 NULL В таком случаи NULL заполняют 4 = ....(2+4+6)/3 http://www.ralphkimball.com/html/designtipsPDF/DesignTips2003/KimballDT43DealingWith.pdf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2009, 23:58 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35965471&tid=1543278]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
203ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 280ms |
| total: | 592ms |

| 0 / 0 |
