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

Re: Perl or Python?



Alexey Pechnikov -> debian-russian@lists.debian.org  @ Thu, 19 Mar 2009 13:27:57 +0300:

 >>  AP> А что скажете насчет ситуации с NULL в СУБД? Строгая типизация во
 >>  AP> многих СУБД - и такие "грабли".
 >>
 >> А где грабли-то?
 >>
 >> Там, конечно, от этого появляются грабли в теории, но это грабля в
 >> теории - потому что на практике оказалось, что не в каждом интересном
 >> тупле удается определить все значения.

 AP> Трехзначная логика получается. И на практике, например, приходится
 AP> обрабатывать _две_ ситуации - строка есть NULL или пустая строка,
 AP> при том, что с точки зрения приложения эти ситуации зачастую
 AP> различить нельзя.

Если с точки зрения приложения ситуации различить нельзя, то приложение
решает НЕ ТУ задачу.

 >>  AP> Собственно, сам я при использовании SQLite полностью отказался от
 >>  AP> NULL, при необходимости просто оперирую пустой строкой,
 >>
 >> А вот это - грабли...

 AP> В чем, по-вашему, смысл приводить тиклевскую переменную к NULL при
 AP> сохранении, чтобы потом при каждом извлечении проверять что не NULL
 AP> и не пустая?

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

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

-- 
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru

Вам правду резать или кусочком?
	Кнышев


Reply to: