Re: Perl or Python?
Alexey Pechnikov -> debian-russian@lists.debian.org @ Thu, 19 Mar 2009 19:02:26 +0300:
>> Так, а вот приписывать мне своих тараканов не надо. Это Вы как раз
>> предлагаете либо не писать в базу данные вообще (что неприемлемо,
>> яркий пример приводил Витус), либо писать туда нечто, не являющееся
>> данными (т.е. делать таблицу непригодной для обработки).
AP> А вы утверждаете, что использование констрэйнта NOT NULL _ухудшает_
AP> качество БД?
Иногда - да. Пример Витуса - как раз про это.
>> А нормальные люди в случае отсутствия приемлемого значения в _поле
>> данного значения_ пишут нечто, что однозначно говорит об отсутствии
>> валидного значения _этого_ поля в _этой_ записи. Это, разумеется, не
>> повод не сообщать об ошибке входных данных. Тоже, кстати, не на каждую
>> попытку такого ввода (термометр привезут через две недели, если погода
>> позволит, и я уже в курсе, что его сожрал медведь - нафига мне две
>> недели каждые три часа про это рассказывать?), а с умом.
AP> Позвольте вас процитировать еще раз:
AP> "нечто, что однозначно говорит об отсутствии валидного значения _этого_ поля в
AP> _этой_ записи". Поскольку NULL не позволяет _однозначно_ сообщить именно об
AP> отсутствии валидного значения, а может означать множество разных ситуаций, то
AP> _вменяемые_ люди его в базу не пишут.
NULL позволяет однозначно сообщить ровно об этом. Это его определение.
Он не позволяет однозначно сообщить о причине этого, но вот это уже как
раз можно писать и еще куда-то.
AP> И это мы еще не говорим о том, что в SQL вообще некорректно NULL
AP> значения обрабатываются, но об этом Дейт уже четверть века говорит.
С точки зрения реляционной алгебры - да, некорректно. С точки зрения
реляционной алгебры реальной жизни не существует. А с точки зрения
реальной жизни - вполне корректно. В том смысле, что остальные способы,
включая неиспользование NULL - хуже.
--
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru
НИИ требуются:
1. Кто бы мог подумать.
Кнышев.
Reply to: