Дизайн базы данных: заменить логический столбец столбцом с меткой времени?

Ранее я создавал таблицы следующим образом:

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, будет очень медленным для больших таблиц.

8
задан ahsteele 2 November 2010 в 12:36
поделиться