Best viewed with LeechCraft on Microsoft Linux. Войти !bnw Сегодня Клубы
УНЯНЯ. У нас есть немножечко инфы об этом пользователе. Мы знаем, что он понаписал, порекомендовал и даже и то и другое сразу. А ещё у нас есть RSS.
Теги: Клубы:

modern sql, slides: http://www.slideshare.net/MarkusWinand/modern-sql Всем, кто использует sql руками, рекомендую ознакомиться/вспомнить.
#B19RW0 (32) / @gds / 3575 дней назад
postgresql jsonb: http://www.databasesoup.com/2014/12/your-hanukkah-present-postgresql-94.html А ещё сегодня третий день хануки, а празднований чото не вижу. Ерж уже не те?
#GRYC14 (7) / @gds / 3625 дней назад
Я видел разные способы хранить интервалы дат в реляционках. Не, понятно, там два столбца, типа dt_start + dt_end, но кое-какие моменты не доходят до людей вообще. Попробую исправить. - null как дата начала/окончания -- неудобно. Правильное решение: фиксированные даты типа 01.01.0001 и 31.12.9999 и функции/вьюхи для получения видимой пользователем даты (если такая будет). Это только выглядит криво, а на самом деле спасает от тонн ошибок, связанных с нуллами. - главное: дата начала -- включительно, дата окончания -- исключительно. То есть, если есть дата начала 2014-12-07 00:00:00 и дата окончания 2014-12-08 00:00:00, в этот интервал попадают все даты 2014-12-07 XX:XX:XX, но не попадают 2014-12-08 00:00:00 и больше неё. С такими раскладами не получится сделать where mydate between dt_start and dt_end (если бы обе даты были "включительно"), но это абсолютно похуй, так как профит перевешивает: 1. условия не зависят от типов и форматов дат: в случае преобразования даты+времени в дату (если часы были 00:00:00) либо преобразования даты в дату+время (когда добавляют часы 00:00:00 к дате без часов) код продолжает работать как и раньше (а такие преобразования не всегда видны в коде невооружённым глазом, неявные преобразования типов таки случаются). 2. нет привязки к тому, какой "квант времени" подразумевался. Если бы интервал из примера выше был записан "концы включительно, квант = сутки", было бы "2014-12-07 .. 2014-12-07". Если бы надо было разбивать на часы, интервал внезапно преобразился бы в "2014-12-07 00:00:00 .. 2014-12-07 23:00:00". 3. часто надо рассмотреть "какие интервалы попадают на данную дату-время". В случае "квант = сутки" имеем where trunc(dt, 'DD') between dt_start and dt_end, заметьте функцию для обрезания даты и явное указание, докуда обрезать. А функции, как известно, не очень хорошо сотрудничают с оптимизатором запросов. - следствие обоих пунктов: валидация становится не сложнее, чем check (dt_start < dt_end) (для непустых интервалов) или check (dt_start <= dt_end) (для возможно пустых интервалов). - для извращенцев: with recursive либо connect by по условию prev.dt_end = next.dt_start
#F3O4YT (1+2) / @gds / 3639 дней назад
https://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.4 -- постгрес хорошо движется вперёд, мне нравится.
#4I1494 (10+1) / @gds / 3649 дней назад
http://www.slideshare.net/billkarwin/sql-antipatterns-strike-back Про enum чуть-чуть гонят (в постгресике с ним гибче, чем обычно), но, в целом, правы.
#7J46Z9 (14+1) / @gds / 3663 дня назад

"То, что пессимисты называют "full table scan", оптимисты называют "Map-Reduce"" [lj\jakobz]

#WMBBEX (1+4) / @gds / 3789 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.