Как должен спроектирован таблица с двумя наборами почти дублированных названий столбцов?

StackOverflow https://stackoverflow.com/questions/4400197

Вопрос

У меня есть таблица, которая имеет около 40 столбцов. Единственная разница в именах столбцов состоит в том, что последние 20 начинаются с «B» перед именем столбца. Эта таблица используется для сравнения. Другими словами, сравните данные в первых 20 столбцах к данным в последних 20 столбцах.

Я знаю, что это очень плохой дизайн, так как этот стол должен быть перепроектирован, так что есть только 20 столбцов, но мы все еще можем сравнить данные?

Редактировать: Если это поможет, мы также используем эти данные, чтобы найти соответствующий когорт

Также обратите внимание, что производительность имеет основную концерн здесь. Дублируя колонн, получение данных чрезвычайно быстро.

Спасибо!

Это было полезно?

Решение

Два возможных архитектуры и кончик запроса.

1) Создайте стол столбца «Тип» и используйте ее, чтобы флаг «Первичный» против «альтернативы». В вашем случае может быть уместным «А» против «Б».

2) Создайте вертикальный раздел, две идентичные таблицы (для первичных и альтернативных данных), которые имеют общий первичный ключ. (Если Id = 42 находится в одной таблице, она должна быть в другом - если только «альтернативные» данные не являются необязательными, в этом случае не заполнит вторую таблицу.) Также необязательно, иметь третью таблицу, которая отслеживает все возможные первичные Клавиши, наряду с любыми данными, которые, как известно, всегда являются общими для обеих таблиц.

Совет: читайте на выборе ... за исключением и выберите ... пересекается. Они быстро бегают быстро, и являются идеей для сравнения всех столбцов и рядов между двумя наборами набора данных для различий (кроме) и совпадения (пересекаются). Вы можете легко использовать это справедливо с помощью одной из двух структур, и он также будет работать с вашим существующим кодом (хотя это может быть FUSTIER, чтобы написать запрос).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top