[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Perl or Python?



> > А эта ситуация, как правило, означает, что база спроектирована
> >  неправильно.  В правильно спроектированной базе будет пара полей "дата -
> >  минимальная температура", и если сегодня в отделении никто не лежит, то
> >  записи за сегодня в ней просто не будет.
> >
> 
> Думаю, это не принципиально, можно придумать ситуацию, когда запись таки
> должна появиться. Например, если подобное поле в таблице не одно, а их
> больше, и в другом поле за сегодня существует некое число.

Можно придумать ситуацию, когда такая _оптимизация_ оправдана.  А ситуацию,
когда запись таки _должна_ появиться, придумать нельзя.

Потому что ... представь себе ситуацию, когда тебе нужно посчитать среднюю
минимальную температуру за месяц.  Если у тебя в месяце было три дня, когда
никто в отделении не лежал.  Задача поставлена корректно, имеет вполне
понятное решение.  Как будем лечить, если у тебя есть поле типа float с
возможным null?  Будем писать "and minTerm is not null"?  А если нужно в том
же запросе выдать еще и агрегат по другому полю, которое в эти дни было не
null?  Писать самопальный average?  Хотя штатный average наверняка null'ы
игнорирует, как и нужно для этой задачи...

> Спор, если я правильно понял, шел о том, можно ли значений типа NULL (или
> undef) вообще избежать, не только в БД. В таком случае мне неясно, что
> должна возвращать функция min() для пустого множества.

Функция min для пустого множества должна возвращать ошибку тем или иным
способом.

-- 
Программы на Haskell настолько ленивы, что по умолчанию вообще не хотят
работать.
 -- http://absurdopedia.wikia.com/wiki/Haskell


Reply to: