28 октября 2011 г. 15:37 пользователь Михаил Шогин <span dir="ltr"><<a href="mailto:mshogin@gmail.com">mshogin@gmail.com</a>></span> написал:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_quote"><div>Объясните, пожалуйста, разработчикам, что null означает "отсутсвие данных", только "отсутсвие данных" и ничего, кроме "отсутствия данных". Разработчики, работающие с базами данных, должны понимать, что "отсутсвие данных" не может быть использовано как "данные".<br>


<br>В этом конкретном случае "запись недоступна" есть некоторые вполне определённые данные, и для этого статуса должно быть определено полне конкретное значение.<br></div></div><br></blockquote></div><div>NULL - тоже значение.</div>

<div><br></div><div>Объяснение простое,</div><div>Поле выставляется в значение NULL для не попадания в индекс.</div></div></blockquote><div><br>Какой в этом смысл?<br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="gmail_quote"><div>Согласен что было бы лучше сделать так </div><div>status - доступность сущности ( 1 - доступна , 0 - не доступна )</div>
<div><br></div><div>однако в таком случае пришлось бы строить индекс</div><div><br></div><div>create index ENTITIES$N$STATUSACTIVE on books (n, case when status = 1 then 1 else null end )</div><div><br></div><div>но в таком случае, для того что бы пойти по индексу, придется использовать запрос вида</div>

<div><br></div><div><div class="im"><div>select en.n </div><div>  from entities en </div></div><div>where case </div><div>               when en.status = 1 </div><div>               then 1 </div><div>               else null </div>
<div>          end  = 1</div></div></div></blockquote><div><br>A почему нельзя просто WHERE en.status = 1 ?<br></div></div><br>-- <br>Andrei Protasovitski<br>< andrei[dot]protasovitski[at]gmail[dot]com ><br>Diemen, Netherlands<br>