2012-04-26 3 views
0

Я проектирую таблицу в Терадате с примерно 30 столбцами. Этим столбцам необходимо будет хранить несколько значений времени в интервале, таких как Daily, Monthly, Weekly и т. Д. Плохая конструкция сохраняет фактические значения строк в таблице, поскольку это было бы сокрушительным повторением данных. Вместо этого я хочу создать примитивную таблицу поиска. Эта таблица будет содержать Daily, Monthly, Weekly и будет использовать столбец идентификации Teradata для получения первичного ключа. Этот первичный ключ затем будет сохранен в таблице, которую я создаю как внешние ключи.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

Edit Part 2: Добавлен новый тег, чтобы получить больше воздействия на этот вопрос.

ответ

2

Что вы сделали, должно быть хорошо. Очевидно, что вам нужно будет запускать фактические запросы и собирать статистику, где это необходимо.

Одна вещь, которую я могу рекомендовать, чтобы иметь дополнительную строку в таблице поиска, как так:

ID Type   Value 
--- ------------ ------------ 
0 Unknown  Unknown 

Затем в основной таблице, вместо того, чтобы иметь поля как нуль, вы могли бы дать им значение 0 Это позволяет использовать внутренние соединения вместо внешних соединений, что будет способствовать повышению производительности.

+0

Забросил этот вопрос, поскольку я пошел другим путем в своем развитии. Не пробовал ваше предложение, но не могу удалить этот вопрос, и я не могу просто оставить его без ответа навсегда, поэтому я отмечаю его. – oscilatingcretin