Я не вижу причин для создания отдельных таблиц.
Обычно вы создаете таблицу Response
, таблицу ResponseType
и создаете внешний ключ между ними.Что-то вроде
CREATE TABLE ResponseType (
ResponseTypeId NUMBER PRIMARY KEY,
<<other columns>>
);
CREATE TABLE Response (
ResponseId NUMBER PRIMARY KEY,
ResponseTypeId NUMBER REFERENCES ResponseType( ResponseTypeId ),
<<other columns>>
);
Если у вас есть Enterprise Edition, и вы также лицензировали опцию разделения, и ваши запросы всегда будут указывать ResponseTypeId
при запросе таблицы Response
и, как правило, захотят прочитать всеResponse
строк для конкретного ResponseTypeId
, вместо того, чтобы использовать индекс, может быть выигрыш в производительности при разбиении таблицы Response
.Но это довольно большое количество if
утверждений.