|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
aleks222 ачало действия параметра однозначно определяет диапазон. 1 : 01.05.2020 - 04.05.2020 2 : 07.05.2020 - 11.05.2020 3 : 23.05.2020 - бессрочно ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 09:54 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
Наличие конца диапазона позволяет контролировать правильность данных. Хотя и усложняет процесс обновления данных. По теме хочу напомнить varchar2 Oracle, ColumnName_IsNull SSIS и nullable типы C# - другими словами, никакой единой и общепризнанной схемы работы с пустыми значениями пока не существует. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 10:37 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
crutchmaster 1: 01.05.2020 null: 05.05.2020 2 : 07.05.2020 null: 12.05.2020 3 : 23.05.2020 Учитесь, шура. Заодно полезность null осознаете. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 12:28 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
aleks222 Учитесь, шура. Тому, как просрать на ровном месте ключ? Или нажить себе еще проблем с предыдущими/следующими записями?? Давайте задачки: 1.Есть дата, как проверить в какой диапазон она попадает? 2.Есть две даты. Надо найти все ид, которые попадают в создаваемый ими отрезок времени. 3.Как узнать сроки действия 1,2 и 3. Только без субд-специфичного изврата. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 12:38 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
crutchmaster aleks222 Учитесь, шура. Тому, как просрать на ровном месте ключ? Или нажить себе еще проблем с предыдущими/следующими записями?? Давайте задачки: 1.Есть дата, как проверить в какой диапазон она попадает? 2.Есть две даты. Надо найти все ид, которые попадают в создаваемый ими отрезок времени. 3.Как узнать сроки действия 1,2 и 3. Только без субд-специфичного изврата. Обучаю. Дорого. Поэтому только 1 Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 12:43 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
aleks222 Обучаю. Дорого. То есть не умею. Запросы тупейшие в случае когда есть дата начала, дата конца. aleks222 Код: sql 1.
crutchmaster без субд-специфичного изврата. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 12:45 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
Модератор: Други! Здесь форум по MSSQL, поэтому со специфичным БД-извратом. Будете устраивать холивары -- изгоню в "Сравнение СУДБ" или "Проектирование" И да, ведите себя дружно. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 12:47 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
crutchmaster 1. Чем твой запрос лучше или быстрее этого? 2. Откуда мне знать что ты понимаешь под "без субд-специфичного изврата"? Тебя научить писать коррелированные запросы для MS SQL 2000? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 12:48 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
aleks222 Чем твой запрос лучше или быстрее этого? Тем, что он не делает join там, где он не нужен? aleks222 Откуда мне знать что ты понимаешь под "без субд-специфичного изврата"? То есть максимально переносимый запрос на другие субд запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 12:53 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич, Я не холивара ради, может оно правда лучше и сейчас aleks222 меня задавит аргументами. Просто речь про сам подход хранения интервалов и от особенностей разных субд хотелось бы абстрагироваться. Так-то я вообще могу вытащить выборку куда-нибудь и там танцевать с ней вприсядку. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 12:55 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
crutchmaster aleks222 Чем твой запрос лучше или быстрее этого? Тем, что он не делает join там, где он не нужен? aleks222 Откуда мне знать что ты понимаешь под "без субд-специфичного изврата"? То есть максимально переносимый запрос на другие субд запрос. Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 12:56 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
crutchmaster aleks222 Чем твой запрос лучше или быстрее этого? Тем, что он не делает join там, где он не нужен? Смешно. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 12:59 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
aleks222 Код: sql 1.
Ладно, теперь есть еще одно свойство и параметров больше одного. entityId parId parValue dt1 dt255 1 1 01.01.2020 05.01.202055 1 2 07.01.2020 12.01.202055 2 1 01.01.2020 08.01.202055 2 2 10.01.2020 01.01.2021 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 13:00 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
crutchmaster aleks222 Код: sql 1.
Ладно, теперь есть еще одно свойство и параметров больше одного. entityId parId parValue dt1 dt255 1 1 01.01.2020 05.01.202055 1 2 07.01.2020 12.01.202055 2 1 01.01.2020 08.01.202055 2 2 10.01.2020 01.01.2021 Это ничего не меняет. ID entityId parId parValue dt1 dt21 55 1 1 01.01.2020 05.01.20202 55 1 2 07.01.2020 12.01.20203 55 2 1 01.01.2020 08.01.20204 55 2 2 10.01.2020 01.01.2021 и фсе. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 13:07 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
aleks222 Это ничего не меняет. Ну я вижу, что ты ничего не поменял. И что? Фсё? Надо выбрать все параметры, например у entityId 55 актуальные на дату. Как это будет выглядеть, когда dt1, dt2 нет? Два запроса? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 13:13 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
crutchmaster, aleks222, Лично мое мнение: ваш спор кажется не очень умным оффтопиком. есть три способа хранения данных: за каждую дату, за начало периода и за период. У каждого способа есть свои достоинства и недостатки. Но ни один из способов не является принципиально лучшим или худшим. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 13:24 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
.Евгений crutchmaster, aleks222, Лично мое мнение: ваш спор кажется не очень умным оффтопиком. есть три способа хранения данных: за каждую дату, за начало периода и за период. У каждого способа есть свои достоинства и недостатки. Но ни один из способов не является принципиально лучшим или худшим. Страдалец жаловался на необходимость проверки пересечения периодов. Хранение только даты начала ликвидирует эту проблему. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 13:56 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
crutchmaster aleks222 Это ничего не меняет. Ну я вижу, что ты ничего не поменял. И что? Фсё? Надо выбрать все параметры, например у entityId 55 актуальные на дату. Как это будет выглядеть, когда dt1, dt2 нет? Два запроса? Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 14:02 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
aleks222 Страдалец жаловался на необходимость проверки пересечения периодов. Хранение только даты начала ликвидирует эту проблему. Ликвидирует эту проблему посредством отказа от проверки (проверка данных по определению требует их избыточности). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 14:25 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
.Евгений aleks222 Страдалец жаловался на необходимость проверки пересечения периодов. Хранение только даты начала ликвидирует эту проблему. Ликвидирует эту проблему посредством отказа от проверки (проверка данных по определению требует их избыточности). Хватит пороть чушь. Ей больно. ЗЫ. Хочешь избыточности - введи дату два раза. И ошибись еще разок. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 14:28 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
aleks222 ЗЫ. Хочешь избыточности - введи дату два раза. И ошибись еще разок. Если исходные данные представлены в виде диапазонов, то преобразование в начальные даты скроет возможные ошибки исходных данных. Ваша реакция на связь избыточности и проверки данных мне непонятна. Уже десятилетия существует практика использования битов четности, контрольных сумм и хешей. Для времязависимых данных избыточность организовывают в виде полей окончания диапазона (конечной даты), порядкового номера периода и т.п. Кроме очистки данных, конечная дата может ускорять и облегчать читающие запросы, избавляя их от этапа сортировки. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 16:49 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
.Евгений aleks222 ЗЫ. Хочешь избыточности - введи дату два раза. И ошибись еще разок. Если исходные данные представлены в виде диапазонов, то преобразование в начальные даты скроет возможные ошибки исходных данных. Ваша реакция на связь избыточности и проверки данных мне непонятна. Уже десятилетия существует практика использования битов четности, контрольных сумм и хешей. Для времязависимых данных избыточность организовывают в виде полей окончания диапазона (конечной даты), порядкового номера периода и т.п. Кроме очистки данных, конечная дата может ускорять и облегчать читающие запросы, избавляя их от этапа сортировки. Если бы у бабушки был х... - она была бы дедушкой. Не стоит мешать в кучу проблемы ввода данных и хранение данных. ЗЫ. Ну а сортировка... так индексы придумали давно. Зачем сортировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 16:55 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
Тема какая-то из пустого в порожнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 17:03 |
|
NULL vs NOT NULL
|
|||
---|---|---|---|
#18+
aleks222 Если бы у бабушки был х... - она была бы дедушкой. Не стоит мешать в кучу проблемы ввода данных и хранение данных. Чтобы разделять ввод и хранение данных, надо заниматься фронтендом. На уровне СУБД нет никакого отдельного ввода данных. Есть только введенные и хранящиеся данные разной чистоты. aleks222 ЗЫ. Ну а сортировка... так индексы придумали давно. Зачем сортировать? Я правильно понял ваши слова, что индекс по начальной дате должен полностью устранить потребность оптимизатора в сортировке по данному полю для любых запросов? P.S. Индекс по начальной дате заведомо не поможет, если интересует продолжительность диапазона. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 17:16 |
|
|
start [/forum/topic.php?fid=46&msg=39988984&tid=1685774]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 281ms |
total: | 420ms |
0 / 0 |