Один столбец различных комбинаций данных вместо нескольких столбцов данных? - PullRequest
0 голосов
/ 26 октября 2011
SELECT name FROM users WHERE type_a1=1 AND type_a2=5 AND type_b2=8

Такая команда встречается в обычных случаях.Но предположим, что 1 особый случай:

  • Каждый пользователь имеет 260 типов (от a0, b0..z0 до a9, b9..z9),

  • Каждый тип также имеет 10 значений от 0-9.

InВ особом случае существует требование к указанию комбинации из 260 типов.Вместо того чтобы использовать 260 SELECT для 260 столбцов, я хочу использовать 1 отдельный столбец, чтобы команда выглядела следующим образом

SELECT name FROM users WHERE type='a04b05c01...y95z96'

Мой вопрос состоит из двух частей:

1) Это более эффективно?использовать один единственный столбец для хранения нескольких комбинаций данных вместо нескольких столбцов?

2) Если (иногда) требуется Only , чтобы выбрать комбинацию из 3 типов (другие 257 типов)может быть как угодно), какова производительность нашей 1-й команды в случае 260 столбцов пользовательских типов по сравнению с приведенной ниже командой в случае 1-го столбца пользовательских типов?

SELECT name... FROM users WHERE type LIKE %a11% AND type LIKE %a25% AND type LIKE %b281%

1 Ответ

0 голосов
/ 26 октября 2011

Возможно, вы захотите реализовать это как модель данных EAV , где пользователи будут вашими сущностями, а типы - вашими атрибутами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...