|
|
|
null значения
|
|||
|---|---|---|---|
|
#18+
Использование null значений является спорным вопросом. В разрабатываемой БД я бы хотел максимально отказаться для их использования. Если для полей с числовыми и символьными типами данных в качестве значений по умолчанию можно использовать "0", " ", или "—", то как быть полями с типом данных "дата-время"? Какие использовать значения по умолчанию, когда, например, неизвестна дата поставки товара? В этом случае без NULL не обойтись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2009, 12:05 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
авторЕсли для полей с числовыми и символьными типами данных в качестве значений по умолчанию можно использовать "0", " ", или "—" Поступать по аналогии. Вы "договорились", что значение "—" - это "пустое значение для строки". Выберите себе некую дату, и используйте её как "пустую". ------------------------- There’s no silver bullet! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2009, 13:13 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
Наличие "null" имеет следующие положительные свойсва : не засоряется индекс : имееет дополнительную смысловую нагрузку например "ОТСУТСТВИЕ ДАННЫХ" : занимает меньше места чем данные-заглушки. Непутайте с данными которые имеют значения по умолчанию ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2009, 15:14 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
senleftИспользование null значений является спорным вопросом.С чего бы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2009, 21:03 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
miksoftsenleftИспользование null значений является спорным вопросом.С чего бы? авторИспользование понятия NULL в реляционной модели является спорным вопросом. Кодд [77] рассматривает понятие NULL как составную часть этой модели, а дрyrие специалисты считают этот подход неправильным, полаrая, что проблема отсутствующей информации еще не до конца понята, удовлетворительное ее решение не найдено, а потому включение определителя NULL в реляционную модель является преждевременным [87]. БАЗЫ ДАННЫХ Проектирование, реализация и сопровождение Теория и практика. Томас Коннолли Каролин Бегг _ Мне интересно с практической точки зрения, кто какие использует (и использует ли) значения-заменители NULL для различных типов данных. А вопрос "использовать - не использовать" - тут мне кажется спорить бессмысленно, каждый решает для себя и ищет рациональное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2009, 23:01 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
В качестве заменителя - нет, и никогда. Ибо глупость. Единственное неудобство может быть при использовании той же функции sum, но coalesce или ее аналоги - спасает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2009, 00:33 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
1. Да по сути вы ничего не меняете, раз null-значения заменяете на специальные. null - тоже специальное значение. 2. Попробуйте посчитать avg по числовым полям, содержащие 0 вместо null. Понятно, что можно использовать where value <> 0, но это уже искусственно. 3. А что, если реально нужно хранить значение 0? Сможете найти такое значение, которое точно не будет нигде использовано? 4. Избавляются от null-ов путем дальнейшей нормализации БД (4/5 НФ, Домен-Ключ итп извраты :), а не заменой их на специальные значения. 5. Теоретики бывают зачастую далеко от практиков. Дейт тоже против null-ов, однако иногда практичнее завести null-значения, нежели соединять десятки таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2009, 07:51 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
KREDНаличие "null" имеет следующие положительные свойсва : не засоряется индекс : имееет дополнительную смысловую нагрузку например "ОТСУТСТВИЕ ДАННЫХ" : занимает меньше места чем данные-заглушки. Непутайте с данными которые имеют значения по умолчанию ! Демократия это не только "За" и "Против", но и возможность воздержаться (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2009, 10:07 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
senleftmiksoftsenleftИспользование null значений является спорным вопросом.С чего бы? авторИспользование понятия NULL в реляционной модели является спорным вопросом. Кодд [77] рассматривает понятие NULL как составную часть этой модели, а дрyrие специалисты считают этот подход неправильным, полаrая, что проблема отсутствующей информации еще не до конца понята, удовлетворительное ее решение не найдено, а потому включение определителя NULL в реляционную модель является преждевременным [87]. БАЗЫ ДАННЫХ Проектирование, реализация и сопровождение Теория и практика. Томас Коннолли Каролин Бегг _ Мне интересно с практической точки зрения, кто какие использует (и использует ли) значения-заменители NULL для различных типов данных. А вопрос "использовать - не использовать" - тут мне кажется спорить бессмысленно, каждый решает для себя и ищет рациональное решение.Если "интересно с практической точки зрения", то довольно странно ссылаться на сугубо теоретические источники. Кроме того, вся логика существующих СУБД построена на обработку в качестве особого значения именно NULL. Конечно, в большинстве случаев вы можете с помощью специальных выражений использовать другое значение, но это может выйти вам очень дорого по ресурсам и быстродействию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2009, 10:25 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
senleftИспользование null значений является спорным вопросом. В разрабатываемой БД я бы хотел максимально отказаться для их использования. Если для полей с числовыми и символьными типами данных в качестве значений по умолчанию можно использовать "0", " ", или "—", то как быть полями с типом данных "дата-время"? Какие использовать значения по умолчанию, когда, например, неизвестна дата поставки товара? В этом случае без NULL не обойтись? имхо, идиотский стиль. не отказывайтесь от нул-значений. работаю с БД, в которых очень часто встречается именно описываемая вами ситуация. сначала долго ругался, сейчас смирился, но все равно рычу мысленно. например в поле дата-время по умолчанию содержится значение 1876-12-31 00-00-00, и это в полях увольнения/приема на работу, или для даты рождения. приходится в запросах сравнивать даты с днем победы или с днем великой октябрьской революции , потому что хз может в след.версиях БД таки будут нул, а переделывать старые проги желания нет. опять же, при анализе экономич. или бухгал.данных проблемно понять, 0 -это отсутствие данных или просто значение такое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2009, 10:58 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
Если очень хочется - то можно включить опцию в БД чтобы NULL=NULL было TRUE, возможно это решит ваши проблемы. А спец значения в полях очень сильно зависят от предметной области. Например для лотереи 6 из 36 число 0 или 37 можно запросто делать "спец числом" а вот в вашей области - вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2009, 11:38 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
Дмитрий16Если очень хочется - то можно включить опцию в БД чтобы NULL=NULL было TRUEЭто в какой СУБД такое можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2009, 12:01 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
miksoftДмитрий16Если очень хочется - то можно включить опцию в БД чтобы NULL=NULL было TRUEЭто в какой СУБД такое можно? Код: plaintext 1. 2. 3. 4. результатMicrosoft SQL Server 2005 - 9.00.3042.00 (Intel X86) ...... (строк обработано: 1) ----------- 1 (строк обработано: 1) ----------- (строк обработано: 0) зы. Правда, я этим пока не пользовался. По старинке привык ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2009, 12:43 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
Important: In a future version of SQL Server, ANSI_NULLS will always be ON and any applications that explicitly set the option to OFF will generate an error. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. так шта.... ------------------------- There’s no silver bullet! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2009, 13:02 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
darkbird81senleftИспользование null значений является спорным вопросом. В разрабатываемой БД я бы хотел максимально отказаться для их использования. Если для полей с числовыми и символьными типами данных в качестве значений по умолчанию можно использовать "0", " ", или "—", то как быть полями с типом данных "дата-время"? Какие использовать значения по умолчанию, когда, например, неизвестна дата поставки товара? В этом случае без NULL не обойтись? имхо, идиотский стиль. не отказывайтесь от нул-значений. работаю с БД, в которых очень часто встречается именно описываемая вами ситуация. сначала долго ругался, сейчас смирился, но все равно рычу мысленно. например в поле дата-время по умолчанию содержится значение 1876-12-31 00-00-00, и это в полях увольнения/приема на работу, или для даты рождения. приходится в запросах сравнивать даты с днем победы или с днем великой октябрьской революции , потому что хз может в след.версиях БД таки будут нул, а переделывать старые проги желания нет. опять же, при анализе экономич. или бухгал.данных проблемно понять, 0 -это отсутствие данных или просто значение такое. +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2009, 14:57 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
lockyтак шта.... дык, я почему и не пользовался. не по-людски это, нуллы сравнивать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2009, 15:26 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
В разрабатываемой БД я бы хотел максимально отказаться для их использования. И ради бога. Поставь условие, запрещающее использовать NULL, поставь значение по умолчанию и не используй. Только как ты будешь различать 0, введенный пользователем, и 0 проставленный по умолчанию? Я сейча работаю с такой системой - порой такая возможнеость нужна. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2009, 18:44 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
U-geneВ разрабатываемой БД я бы хотел максимально отказаться для их использования. И ради бога. Поставь условие, запрещающее использовать NULL, поставь значение по умолчанию и не используй. Только как ты будешь различать 0, введенный пользователем, и 0 проставленный по умолчанию? Я сейча работаю с такой системой - порой такая возможнеость нужна. Код: plaintext 1. 2. Ну не везде же я буду использовать "0" как значение по умолчанию, например для поля "Сумма предоплаты" это вполне допустимо - не важно ввел это пользователь или это значение по умолчанию. В каждом отдельном случае - свое решение. Например для дат, значение которых неизвестно, кроме null вредли что-то можно использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2009, 22:00 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
senleft, все-таки поясните, зачем для понятия "значение не задано" придумывать что-то новое? Либо у Вас так мало проблем, что Вы выдумываете себе новые, либо Вы не такой ("значение не задано") смысл вкладываете в "NULL". Уточните, пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2009, 14:32 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
1. По поводу выбора значения для даты: посмотрите в мануалах Вашей СУБД, клиента и возьмите максимальную минимальную. 2. U-gene Только как ты будешь различать 0, введенный пользователем, и 0 проставленный по умолчанию? +1024 3. Я хоть и сам ярый сторонник юзания NULL'ов, но когда встал вопрос о выборке данных из временного интервала, которые могут содержать NULL, в случае, если неопределено, согласился с "магическими" датами и простым запросом: Код: plaintext 1. "Helo, word!" - 17 errors 56 warnings ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2009, 16:50 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
Тоже, но с нулом. По-моему не намного сложнее select SmthField from SmthTable where @DateActual between DateBegin and ISNULL(DateEnd, GETDATE()+99999) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2009, 17:04 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2009, 17:09 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
KRED Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2009, 20:24 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
miksoft и прощайте, индексы... это само - собою... тока вот: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Id DateBegin DateEnd351917-06-291963-11-22421946-08-19null421946-07-06null а нужно ( в контексте ) Id DateBegin DateEnd351917-06-291963-11-22 _________________ "Helo, word!" - 17 errors 56 warnings ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2009, 21:46 |
|
||
|
null значения
|
|||
|---|---|---|---|
|
#18+
Ex_Soft, про индексы я пока промолчу так как есть более интерестная тема про мой неправильный запрос :-) что собственно принимать под значением колонок DateBegin,DateEnd "NULL" ? Если понятие что дата не определена и "открыта" , то запрос нашол все возможные. Тоесть Ваши претензии мне не понятны. Если считать что данных "нету" то просто убрать условия (OR ... IS NULL) , но свой запрос я привёл по типу запроса Код: plaintext где из условия видно что если поле DateEnd равно NULL то DateEnd будет охрененно большой и результат будет темже. А что на счот того "контекста" так моё скромное мнение ... нужно организовать "версионность объектов". Хотя детально в тему не въежал и могу ошибаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2009, 23:46 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35859543&tid=1543278]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
39ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 319ms |

| 0 / 0 |
