|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
booby Ты либо "отказываешься" от Null-ов, либо "учитываешь" их. Прикол в том, что все эти его выдуманные из пальца "умолчательные значения" тоже учитывать придется (как, впрочем, ты уже выше указал), только вот нулл он всегда и везде нулл и "учитывается" он стандартным и однообразным способом, а у него повсюду будет черти что и учитываться должно черти как. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2020, 18:06 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
fkthat, не совсем так, есть малый подкол. Там, где разумно проклинают Null, обязательно вместе с ним проклинают и "умолчательные типизированные" заменители Null. Они еще хуже единого Null в смысле размножения сущностей. Настоящий отказ идет именно путем внедрения "нормализации до потери нуллов". То, что я показал, в действительности, содержит в себе некое настояние всё-таки на чтении "первоисточников". Дейт настаивает на том, что независимо от присутствия или отсутствия Null-значений в базовых таблицах, агрегатные Min/Max в SQL, с его точки зрения принципиально спроектированы неверно, по его мысли они обязаны возвращать диапазонный максимум для Min и диапазонный минимум для Max. В этом есть определенные резоны. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2020, 18:21 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
С позиции требования о поддержании достоверности данных "замены" NULL на материализованные значения недопустимы. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2020, 20:12 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
noram Я всегда их (NULLы) использую и ничего, кроме головной боли они мне не предлагали Просто не надо использовать null там, где они не нужны. У некоторых проектировщиков почему-то все поля nullable, вместе с id, потому что им лень дописать not null при создании таблицы или галочку в своё иде поставить. noram а если используют, то какие аргументв за. Данные могут быть, а могут не быть. Какие еще аргументы нужны? Чем ты будешь обозначать, что данных нет? Нулём, -1? И в чём разница? noram Но так это и так понятно, а пустое значение легче воспринимается, чем NULL. Пустое значение - это костыль. Тебе так для всего придётся придумывать какие-то свои пустые значение, которые будут понятны только тебе. Можно вообще сделать битовые флаги типа null/нет/не знаю/затрудняюсь ответить и засунуть их в инт для каждого поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 06:19 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
Дп, crutchmuster, спасибо. В принципе со всем согласен. Правда не понимаю, как можно создать id и не проставить NOT NULL. Мне NULL не нравится во сновои из-за путаницы пустого значения и неизвесного значения (null). С другой стороны, как тут правильно отметили, слишком сильная нормализация таблиц тоже не выход... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 07:46 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
noram путаницы пустого значения и неизвесного значения (null) Ну вот, теоретик баз данных. Ты сам то способен определить различие между "пустого" и "неизвесного"? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 08:00 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
crutchmaster У некоторых проектировщиков почему-то все поля nullable, вместе с id, потому что им лень дописать not null при создании таблицы или галочку в своё иде поставить. Если некоторые идиоты молотком по голове себе стучат, то это не значит, что молоток вообще не следует использовать :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 10:17 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
aleks222 noram путаницы пустого значения и неизвесного значения (null) Ну вот, теоретик баз данных. Ты сам то способен определить различие между "пустого" и "неизвесного"? noram, приведу простой пример. Нужно вывести баланс поступлений и списаний по некоторым счетам. Так вот - 0 в этом случае означает, что дебет и кредит баланса равны. Сколько пришло, столько и ушло. А вот NULL показывает, что по данному счету вообще не было никаких операций. Так понятнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 11:17 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
SQL2008 aleks222 пропущено... Ну вот, теоретик баз данных. Ты сам то способен определить различие между "пустого" и "неизвесного"? noram, приведу простой пример. Нужно вывести баланс поступлений и списаний по некоторым счетам. Так вот - 0 в этом случае означает, что дебет и кредит баланса равны. Сколько пришло, столько и ушло. А вот NULL показывает, что по данному счету вообще не было никаких операций. Так понятнее? Батенька, разве ж 0 - это "пустое"? Это полное смысла значение. Тема не раскрыта. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 11:21 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
aleks222, вообще-то я не о том писал. Получилось, что я привожу пример пустого и неизвестного... Пример о другом. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 11:35 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
noram, Вы слишком много говорите про Хоара, а я бы на Вашем месте обратился к отцу основателю реляционных баз данных, Кодду. Эдгар Франк «Тед» Кодд (англ. Edgar Frank Codd; 23 августа 1923 — 18 апреля 2003) — британский учёный, работы которого заложили основы теории реляционных баз данных. Работая в компании IBM, он создал реляционную модель данных. Он также внёс существенный вклад в другие области информатики. 12 правил Кодда Материал из Википедии — свободной энциклопедии Перейти к навигацииПерейти к поиску 12 правил Кодда (англ. Codd’s 12 rules) — 13 правил (в данном случае исчисление начинается с 0), которым должна удовлетворять каждая система управления реляционными базами данных[1]. Предложены английским математиком Эдгаром Коддом (Edgar Codd) в 1985 году в статьях в журнале ComputerWorld[2][3]. В действительности правила столь строги, что все популярные так называемые «реляционные» СУБД не соответствуют многим критериям. Правила Правило 0: Основное правило (Foundation Rule): Система, которая рекламируется или позиционируется как реляционная система управления базами данных, должна быть способна управлять базами данных, используя исключительно свои реляционные возможности. Правило 1: Информационное правило (The Information Rule): Вся информация в реляционной базе данных на логическом уровне должна быть явно представлена единственным способом: значениями в таблицах. Правило 2: Гарантированный доступ к данным (Guaranteed Access Rule): В реляционной базе данных каждое отдельное (атомарное) значение данных должно быть логически доступно с помощью комбинации имени таблицы, значения первичного ключа и имени столбца. Правило 3: Систематическая поддержка отсутствующих значений (Systematic Treatment of Null Values): Неизвестные, или отсутствующие значения NULL, отличные от любого известного значения, должны поддерживаться для всех типов данных при выполнении любых операций. Например, для числовых данных неизвестные значения не должны рассматриваться как нули, а для символьных данных — как пустые строки. Правило 4: Доступ к словарю данных в терминах реляционной модели (Active On-Line Catalog Based on the Relational Model): Словарь данных должен сохраняться в форме реляционных таблиц, и СУБД должна поддерживать доступ к нему при помощи стандартных языковых средств, тех же самых, которые используются для работы с реляционными таблицами, содержащими пользовательские данные. Правило 5: Полнота подмножества языка (Comprehensive Data Sublanguage Rule): Система управления реляционными базами данных должна поддерживать хотя бы один реляционный язык, который (а) имеет линейный синтаксис, (б) может использоваться как интерактивно, так и в прикладных программах, (в) поддерживает операции определения данных, определения представлений, манипулирования данными (интерактивные и программные), ограничители целостности, управления доступом и операции управления транзакциями (begin, commit и rollback). Правило 6: Возможность изменения представлений (View Updating Rule): Каждое представление должно поддерживать все операции манипулирования данными, которые поддерживают реляционные таблицы: операции выборки, вставки, изменения и удаления данных. Правило 7: Наличие высокоуровневых операций управления данными (High-Level Insert, Update, and Delete): Операции вставки, изменения и удаления данных должны поддерживаться не только по отношению к одной строке реляционной таблицы, но и по отношению к любому множеству строк. Правило 8: Физическая независимость данных (Physical Data Independence): Приложения не должны зависеть от используемых способов хранения данных на носителях, от аппаратного обеспечения компьютеров, на которых находится реляционная база данных. Правило 9: Логическая независимость данных (Logical Data Independence): Представление данных в приложении не должно зависеть от структуры реляционных таблиц. Если в процессе нормализации одна реляционная таблица разделяется на две, представление должно обеспечить объединение этих данных, чтобы изменение структуры реляционных таблиц не сказывалось на работе приложений. Правило 10: Независимость контроля целостности (Integrity Independence): Вся информация, необходимая для поддержания целостности, должна находиться в словаре данных. Язык для работы с данными должен выполнять проверку входных данных и автоматически поддерживать целостность данных. Правило 11: Независимость от расположения (Distribution Independence): База данных может быть распределённой, может находиться на нескольких компьютерах, и это не должно оказывать влияния на приложения. Перенос базы данных на другой компьютер не должен оказывать влияния на приложения. Правило 12: Согласование языковых уровней (The Nonsubversion Rule): Если используется низкоуровневый язык доступа к данным, он не должен игнорировать правила безопасности и правила целостности, которые поддерживаются языком более высокого уровня. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 11:47 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
a_voronin Правило 10: Независимость контроля целостности (Integrity Independence): Вся информация, необходимая для поддержания целостности, должна находиться в словаре данных. Язык для работы с данными должен выполнять проверку входных данных и автоматически поддерживать целостность данных. буду искренне рад )) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 11:54 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
andreymx когда уже СУБД научатся контролировать пересечение-непересечение интервалов/дат! Да! 35 лет прошло и до сих про приходится делать костыли. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 12:14 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
авторНужно вывести баланс поступлений и списаний по некоторым счетам. Так вот - 0 в этом случае означает, что дебет и кредит баланса равны. Сколько пришло, столько и ушло. А вот NULL показывает, что по данному счету вообще не было никаких операций. Так понятнее? Да, SQL2008, так понятнее. Спасибо, очень наглядный пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 13:30 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
noram авторНужно вывести баланс поступлений и списаний по некоторым счетам. Так вот - 0 в этом случае означает, что дебет и кредит баланса равны. Сколько пришло, столько и ушло. А вот NULL показывает, что по данному счету вообще не было никаких операций. Так понятнее? Да, SQL2008, так понятнее. Спасибо, очень наглядный пример.как раз кривой пример Наллы и агрегаты - это отдельная песня ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 13:45 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
andreymx a_voronin Правило 10: Независимость контроля целостности (Integrity Independence): Вся информация, необходимая для поддержания целостности, должна находиться в словаре данных. Язык для работы с данными должен выполнять проверку входных данных и автоматически поддерживать целостность данных. буду искренне рад )) Не используйте интервалы - и минуют вас печали и геморрои. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 14:36 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
aleks222 andreymx пропущено... когда уже СУБД научатся контролировать пересечение-непересечение интервалов/дат! буду искренне рад )) Не используйте интервалы - и минуют вас печали и геморрои. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 15:04 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
andreymx aleks222 пропущено... Не используйте интервалы - и минуют вас печали и геморрои. Заказчик фсегда прав. Но разработчик должен быть умным. Даты НАЧАЛА действия цены абсолютно достаточно... и НИКАКИХ перекрытий даже возникнуть не может. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 15:14 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
andreymx, авторкак раз кривой пример Приведите прямой пример. Мне пример SQL2008 показался убедительным, и не важно, что он в отдельной песне, важно, что он показывает необходимость наличия налов. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 15:21 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
noram andreymx, авторкак раз кривой пример Приведите прямой пример. Мне пример SQL2008 показался убедительным, и не важно, что он в отдельной песне, важно, что он показывает необходимость наличия налов.зависит от структуры, в которой вы собираетесь это хранить и считать давай пример! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 15:53 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
aleks222 Не используйте интервалы - и минуют вас печали и геморрои. Но они нужны. Часто любят всё пересчитывать задним числом. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 06:22 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
crutchmaster aleks222 Не используйте интервалы - и минуют вас печали и геморрои. Но они нужны. Часто любят всё пересчитывать задним числом. Увы, ты так ничего и не понял. Надо переквалифицироваться в управдомы. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 07:41 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
aleks222 Надо переквалифицироваться в управдомы. Зачем переквалифицироваться? Я и так управдом на 0,25 ставки. aleks222 Увы, ты так ничего и не понял. Что я должен был понять? Что не надо было идти работать в РИЦ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 07:52 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
crutchmaster aleks222 Надо переквалифицироваться в управдомы. Зачем переквалифицироваться? Я и так управдом на 0,25 ставки. aleks222 Увы, ты так ничего и не понял. Что я должен был понять? Что не надо было идти работать в РИЦ? Начало действия параметра однозначно определяет диапазон. Поэтому скулеж: "пересечение диапазонов" - удел управдомов. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 08:24 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
andreymx a_voronin Правило 10: Независимость контроля целостности (Integrity Independence): Вся информация, необходимая для поддержания целостности, должна находиться в словаре данных. Язык для работы с данными должен выполнять проверку входных данных и автоматически поддерживать целостность данных. буду искренне рад )) На вертике есть конструкции, ориентированные на интервалы. INTERPOLATE PREVIOUS VALUE ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 09:11 |
|
|
start [/forum/topic.php?fid=46&msg=39988679&tid=1685774]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
others: | 287ms |
total: | 435ms |
0 / 0 |