Ранее я создавал таблицы следующим образом:
create table workflow (
id number primary key,
name varchar2(100 char) not null,
is_finished number(1) default 0 not null,
date_finished date
);
Столбец is_finished указывает, завершился рабочий процесс или нет. Столбец date_finished - это когда рабочий процесс был завершен.
Затем у меня возникла идея «Мне не нужен is_finished, я могу просто сказать: где data_finished не равно null», и я спроектировал без is_finished столбца:
create table workflow (
id number primary key,
name varchar2(100 char) not null,
date_finished date
);
(Мы используем Oracle 10)
Хорошая это или плохая идея? Я слышал, что у вас не может быть индекса для столбца со значениями NULL, поэтому , где data_finished не равно null,
будет очень медленным для больших таблиц.