Я разрабатываю таблицу в Teradata примерно с 30 столбцами. В этих столбцах потребуется хранить несколько значений временного интервала, таких как «Ежедневно», «Ежемесячно», «Еженедельно» и т. д. Сохранение фактических строковых значений в таблице — плохой дизайн, поскольку это будет ужасным повторением данных. Вместо этого я хочу создать примитивную таблицу поиска. Эта таблица будет содержать значения Daily, Monthly, Weekly и будет использовать столбец идентификаторов Teradata для получения первичного ключа. Затем этот первичный ключ будет храниться в таблице, которую я создаю как внешние ключи.
Это отлично сработает для моего приложения, поскольку все, что мне нужно знать, это значение примитивного ключа, когда я заполняю раскрывающиеся списки моей веб-формы. Однако другие приложения, которые мы используем, должны будут либо запускать отчеты, либо получать эти данные через фиды. Следовательно, необходимо будет создать представление, которое соединяет эту таблицу с таблицей примитивов, чтобы оно могло фактически возвращать Daily, Monthly и Weekly.
Меня беспокоит производительность. Я никогда не создавал таблицу с таким большим количеством полей внешнего ключа и новичок в Teradata. Прежде чем я отправлюсь в долгий путь, чтобы разобраться во всем этом, я хотел бы получить любой совет, который я могу получить, чтобы лучше всего достичь своей цели.
Редактировать: я полагаю, я должен добавить, что эта таблица поиска будет мешаниной несвязанных примитивов. Он будет содержать группу значений, относящихся к временным интервалам, как уже упоминалось выше, а также временные рамки, такие как 24x7 и 8x5. Таблица будет выглядеть следующим образом:
ID Type Value --- ------------ ------------ 1 Interval Daily 2 Interval Monthly 3 Interval Weekly 4 TimeFrame 24x7 5 TimeFrame 8x5
Редактировать часть 2: добавлен новый тег, чтобы получить больше информации об этом вопросе.