powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
25 сообщений из 76, страница 3 из 4
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39611715
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVhVosttя большой противник «промежуточных вычислений» (т.е. бизнес-логики) в СУБД, поэтому меня это не парит ))А как Вы делаете сложный отчет с 50 колонками из 5-6 источников ?
Человек страшно далек от BI, OLAP и прочих DWH
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39611789
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan DurakLSVпропущено...
А как Вы делаете сложный отчет с 50 колонками из 5-6 источников ?
Человек страшно далек от BI, OLAP и прочих DWHЭто в чей адрес реплика ?
Если в системе просто нет ОЛАП/БИ/ДВХ (нецелесообразно). А неск. сложных отчетов есть.
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39611899
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVhVosttя большой противник «промежуточных вычислений» (т.е. бизнес-логики) в СУБД, поэтому меня это не парит ))А как Вы делаете сложный отчет с 50 колонками из 5-6 источников ?

у нас дофига отчётов, где колонок и по-более и источников по-более, и это ещё с учётом исторических данных и данных, полученных из внешних источников.

удивить 50-ю колонками, не получится. да, без логиги в БД всё прекрасно получается делать.
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39611903
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan DurakЧеловек страшно далек от BI, OLAP и прочих DWH

т.е. вы прямо утверждаете, что BI, OLAP и прочие DWH, без логики в БД невозможен или нормальной жизни нет?

а вы точно разработчик, а не начитались каких-то терминов с хабра?
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39611958
Юзер 01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt...
удивить 50-ю колонками, не получится. да, без логиги в БД всё прекрасно получается делать.

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

На уровне микросхем используются три значения - 0, 1 и "ничего" в виде разного напряжения или его отсутствия.
Теоретически микросхемный "0" может иметь напряжение 0-1 вольт, но 0 практически не используется, так как это означало бы сплошное обнуление при отсутствии питания. Отсутствие напряжения, это не "0", а "ничего" (null).

Так и в "бизнес-логике" считаю употребление null вполне оправданным.

"Если null существует, значит это кому-то нужно".
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39612034
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttя большой противник «промежуточных вычислений» (т.е. бизнес-логики) в СУБД, поэтому меня это не парит ))

A+B это уже промежуточные высичления. К тому же надо как-то сопрягаться с бизнеслогикой :)
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39612036
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смешной топик. Впрочем, другим он не мог быть, так как стартовал с ухмылочек.

Юзер 01 ...есть ли смысл для "бизнес" - значений...

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


Юзер 01Ну вот кому конкретно станет плохо, когда length('') станет равен 0?

В ту же секунду станет плохо каждому , кто использует конкатенацию в такой системе.
Потому что, при таком раскладе, конкатенаций, внезапно, должно образоваться две .
Иначе нет смысла в раличении Null и ''. А length, возращающий ноль применительно к null - нонсенс.
То есть, буквально, length('') внезапно ставший возвращать ноль, означает,
что старую математику, обслуживавшую тип данных, из коробочки вынули, и новую туда поставили, не обращая внимания на использующий её клиентский код.
В переводе на русский - системообразующий код может меняться.
Но правильно он меняется только путем замены самой системы, и, автоматически, вместе с заменой (переписыванием) всей базы использующего возможности системы клиентского кода.

Юзер 01Или AVG() станет возвращать действительно средний уровень дохода в семье именно на человека, а не средний уровень дохода только среди получающих этот доход?
Это псевдовопрос, то есть, не вопрос.
Используя Avg, таким, каков он есть сейчас, вы можете решить обе задачи.
А тот, который вам померещился, может решать только одну из них.

Юзер 01Вот и вопрос: есть ли смысл для "бизнес" - значений использовать типы с ограничениями
not null & (devault value = 0|'')
?
Не создаст ли сие каких-либо неудобств в дальнейшем?
Тут божий дар и яичница.

Божий дар - это "бизнес-значения", а яичница разведена в значениях по умолчанию.
Исходный смысл значений по умолчанию состоит именно в представлении "естественных" бизнес-значений. Именно "бизнес-значений".
Так, если у вас есть пара полей с датой, для одного из них - даты начала, чаще всего естественно объявить ограничение not Null, а для второго - дата завершения,
может возникать естественное значение по умолчанию, сорта - Date '9999-12-31'.
Это значение - вполне себе бизнес значение, никаким специальным образом не отличимое ни
от какого другого пригодного для бизнеса значения даты, допустимого для указания в этом поле. И не требующее специальной математики для своей интерпретации.
Имеющая физический смысл "актуальной бесконечности" времени действия.

Существо вашего предложения здесь сводится к тому, чтобы в качестве значений по умолчанию указывать именно "не-бизнес-значения".
Специальные стоп-значения, не имеющие бизнес-смысла, и необходимые только для имитации "отказа" от null.
Между тем:
a) это не имеет никакого отношения к "отказу от null". Это замена "универсального" null на специфически типизированный - "не значение" для конкретного домена.
Поэтому
б) по смыслу это действие отлично от заявления значения по умолчанию. Это заявление специфического null для конкретного типа данных.
То есть это просто другое свойство. И для самого поля базовой таблицы оно будет отсутствовать почти во всех системах.
Вообще говоря, это свойство не самого поля, а типа данных, хранимого в этом поле.

Ведет это к следующему:
в) техника такого сорта обязывает вас, по крайней мере для себя, научиться явно отличать (на уровне предоставляемой вами библиотечной математики)
- где вы задействуете значение по умолчанию именно для бизнес-значения, а где для представления такого "типизированного для конкретного поля Null".
По существу - вы сначала умножаете сущности, а потом перемешиваете их, путем использования одного и того же sql-интерфейса.

г) сам перемешал, самому и расхлебывать. Т.е. ответственность за интерпретацию, совместимость и непротиворечивость использования - целиком ваша.
Вот есть у вас две таблицы T1 и T2. И в каждой по числовому полю - T1.P1 и T2.P2
И для T1.P1 естественным "не значением", решили вы, является ноль, а для T2.P2 - минус единица.
Затем вы собственными руками рисуете union на этих двух таблицах:

Select P1 as Eternity From T1
Union All
Select P2 From T2

Теперь вы бог "своей системы", и никто, кроме вас не знает, каким должно оказаться "не значение" для свежеполученного поля Eternity

Юзер 01Не создаст ли сие каких-либо неудобств в дальнейшем?

Для богов не существует понятия "неудобство".
Ну, просто иногда чуть-чуть не хватает времени, чтобы сложить слово "Вечность".
Это не является неудобством.
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39612056
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юзер 01hVostt...
удивить 50-ю колонками, не получится. да, без логиги в БД всё прекрасно получается делать.

Что-то да, действительно непонятно, при чем тут логика в БД.

непонятно к чему этот комментарий
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39612454
stenford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юзер 01Ну, можно придумать. Например, поле "Дата начала строительство". Пока оно null, строительство и не началось. Но ведь можно для этого задействовать какую-либо "волшебную константу", какой-нибудь?
любой, у кого есть реальный опыт работы с базами данных всегда использует именно nulls для подобного рода вещей, никаких констант
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39612895
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stenfordЮзер 01Ну, можно придумать. Например, поле "Дата начала строительство". Пока оно null, строительство и не началось. Но ведь можно для этого задействовать какую-либо "волшебную константу", какой-нибудь?любой, у кого есть реальный опыт работы с базами данных всегда использует именно nulls для подобного рода вещей, никаких констант"любой", "все знают" и пр. - типичные, довольно грубые приёмы демагогических и манипулятивных обобщений...
Кароч низачод...

Вы банальный 1С чтоле не видели ? :)
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39620160
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юзер 01База, в в ней таблички. Каждая табличка имеет суррогатный ключ типа Int64.
Таблички связаны между собой с помощью FK - ограничений. Каждое поле, ссылающееся по FK на другую табличку, может быть как "nullable", так и "not null", в зависимости от особенностей FK - связи. Тут удобство null-ов не вызывает сомнений.
С полями, реализующими FK-связи, вопросов нет.
...
А еще есть поля, несущие уже "кондовую" смысловую нагрузку: Фамилия, Стоимость, Адрес...
Какой смысл разрешать для таких полей значение null?

Ну, можно придумать. Например, поле "Дата начала строительство". Пока оно null, строительство и не началось. Но ведь можно для этого задействовать какую-либо "волшебную константу", какой-нибудь
Код: sql
1.
cast(0 as date)

...

Для строк использовать значение "пустая строка", для чисел - "0".

Null, конечно, сам по себе является такой "волшебной константой". Но ведь значение 0 (или "пустая строка") можно использовать в запросах наравне с остальными значениями, а с null-ами приходится кочевряжиться!

Вот и вопрос: есть ли смысл для "бизнес" - значений использовать типы с ограничениями
Код: sql
1.
not null & (devault value = 0|'')

?

Не создаст ли сие каких-либо неудобств в дальнейшем?
Вы с самого начала ввели себя в заблуждение. "Кондовые" поля - это результат денормализации. Фамилия, например - это самостоятельный тип сущности, имеющий свои свойства (такие, как происхождение, например). Так что - "не вызывает сомнений":)
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39627204
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Те, кто говорят что NULL усложняет запросы, просто не могут принять, что кроме двузначной логики есть еще и трехзначная, и придется ее выучить. Разучивать различные фреймворки не лень, а логику лень.
Да взять хотя бы обычный битовый признак:
0 - задание завершилось не успешно
1 - задание завершилось успешно
NULL - завершение задания еще не известно.. оно или выполняется в данный момент или еще не началось
А теперь в игру включается NOT
NOT 0 = 1 - отрицаем, что задание завершилось не успешно, получаем успешно
NOT 1 = 0 - отрицаем, что задание завершилось успешно, получаем не успешно
NOT NULL = NULL - отрицаем непонятное состояние, получаем непонятное состояние

Пример надуманный, но показывает суть NULL-величин, кстати NULL это обозначение отсутствующего значения, а не величины. Просто принято говорить как значение, ради простоты общения и обозначения. Вообще правильно говорить NULL-маркер.
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39627270
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharperhVosttя большой противник «промежуточных вычислений» (т.е. бизнес-логики) в СУБД, поэтому меня это не парит ))

A+B это уже промежуточные высичления. К тому же надо как-то сопрягаться с бизнеслогикой :)
Если речь только о чтении, то допустимо такие "приложения" делать. Но, в целом, любая "логика" в приложении делает такую информационную систему не системой БД. Тогда это еще можно как-то обсуждать, но, только не в разделе "Проектирование БД", потому что приложение БД, которое что-то вычисляет - это не приложение БД, или ПО очень низкого качества. Это просто основной закон теории БД:)
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39627670
PgSQLanonymous3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-CiteТе, кто говорят что NULL усложняет запросы, просто не могут принять, что кроме двузначной логики есть еще и трехзначная, и придется ее выучить. Разучивать различные фреймворки не лень, а логику лень.Если бы она ещё была в стандартном SQL, эта логика NULL-ов... всё равно придётся исключения запоминать (а они сделаны исключительно для удобства в типичных случаях, похоже).
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39627678
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаЕсли речь только о чтении, то допустимо такие "приложения" делать. Но, в целом, любая "логика" в приложении делает такую информационную систему не системой БД. Тогда это еще можно как-то обсуждать, но, только не в разделе "Проектирование БД", потому что приложение БД, которое что-то вычисляет - это не приложение БД, или ПО очень низкого качества. Это просто основной закон теории БД:)

Поздравляю с грибным трипом!
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39627761
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаТогда это еще можно как-то обсуждать, но, только не в разделе "Проектирование БД", потому что приложение БД, которое что-то вычисляет - это не приложение БД, или ПО очень низкого качества.

Что такое "приложение БД"? Есть язык SQL в нем есть вычисления. A+B это уже вычисление.
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39627976
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttБредятинаЕсли речь только о чтении, то допустимо такие "приложения" делать. Но, в целом, любая "логика" в приложении делает такую информационную систему не системой БД. Тогда это еще можно как-то обсуждать, но, только не в разделе "Проектирование БД", потому что приложение БД, которое что-то вычисляет - это не приложение БД, или ПО очень низкого качества. Это просто основной закон теории БД:)

Поздравляю с грибным трипом!
Бетховен никогда не был в Уфе. И потом - какое отношение имеет Бетховен к приложениям БД?
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39627977
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharperБредятинаТогда это еще можно как-то обсуждать, но, только не в разделе "Проектирование БД", потому что приложение БД, которое что-то вычисляет - это не приложение БД, или ПО очень низкого качества.

Что такое "приложение БД"? Есть язык SQL в нем есть вычисления. A+B это уже вычисление.
На стороне БД? Очень хорошо, что нет никакого приложения БД. Я полагал, что у hVostt, которому Вы написали, оно есть:)
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39628152
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаБетховен никогда не был в Уфе. И потом - какое отношение имеет Бетховен к приложениям БД?

Если не получается понятным для людей языком излагать мысли, можно найти себя на каком-нибудь другом поприще. У вас как раз это не получается.
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39628208
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttБредятинаБетховен никогда не был в Уфе. И потом - какое отношение имеет Бетховен к приложениям БД?

Если не получается понятным для людей языком излагать мысли, можно найти себя на каком-нибудь другом поприще. У вас как раз это не получается.
Ты зачем это пишешь персонажу с ником Бредятина?
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39628258
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAТы зачем это пишешь персонажу с ником Бредятина?

Ну я глянул в профиль, вроде не ПТ-шник же
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39628319
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаWebSharperпропущено...

A+B это уже вычисление.
На стороне БД?

На стороне СУБД.
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39628534
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttБредятинаБетховен никогда не был в Уфе. И потом - какое отношение имеет Бетховен к приложениям БД?

Если не получается понятным для людей языком излагать мысли, можно найти себя на каком-нибудь другом поприще. У вас как раз это не получается.
1) Что значит "для людей"? Это профессиональный форум. Если Вы не разбираетесь в теории и проектировании БД (а это - факт), то, разумеется, Вы не все можете понять.
2) Если я что-то не понимаю, то считаю, что дело исключительно во мне, а не в том, кто объясняет, и столько раз переспрошу, сколько нужно для того, чтобы понять. Если этот вопрос меня интересует, разумеется.
3) Вероятно, Вас БД не настолько интересуют, чтобы в них разбираться:)
...
Рейтинг: 0 / 0
Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
    #39628536
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhVosttпропущено...


Если не получается понятным для людей языком излагать мысли, можно найти себя на каком-нибудь другом поприще. У вас как раз это не получается.
Ты зачем это пишешь персонажу с ником Бредятина?
А Вы зачем упоминаете персонаж с ником Бредятина?:) Чувствуете, все-таки, ограниченность своих знаний в области БД:)?
...
Рейтинг: 0 / 0
25 сообщений из 76, страница 3 из 4
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование: есть ли смысл разрешать null-значения для "бизнес-данных"?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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