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: