Вопрос поиска по столбцу SQL (SQL Server 2005) - PullRequest
0 голосов
/ 11 марта 2011

У меня есть столбец varchar (70) в одной из моих таблиц, где я храню разделенные пробелами теги:

Id  Tags 
1   Baby Kids Learning Alphabets 
2   Kids Baby 
3   Comedy Movie Fun
100 Kids Learning Alphabets
500 Kids Baby

Я выполняю поиск по столбцу: Получить все идентификаторы, где у нас есть Baby Kids и алфавиты в тегах

Я могу делать там, где теги типа "% Baby%" или теги типа "% Kids%" или теги типа "% Alphabets%" Запрос на выбор выполняется при большом количестве строк. Но добавить \ удалить \ редактировать всегда очень быстро.

Поэтому я добавил еще одну таблицу под названием «Теги», в которой я храню теги в алфавитном порядке, например:

  Tag        Id
  Alphabets  1
  Alphabets  100
  Baby       1
  Baby       2
  Baby       500
  Comedy     3
  Kids       1

Это ускоряет поиск, покупайте обновление \ удаляйте \ вставляйте болезненно.

Подходит ли мой дизайн для будущего роста?

Как создать этот столбец тегов?

Спасибо за чтение

EDIT: * Все, что я пытаюсь вытащить, это список связанных идентификаторов. В основном найдите все идентификаторы, имеющие данные теги или тег Как и в этом вопросе, вы видите «Связанные вопросы» справа. Вот что я пытаюсь получить. *

Ответы [ 2 ]

1 голос
/ 11 марта 2011

Вот что я рекомендую:

Создайте 2 новые таблицы.Один просто сохраняет имя тега

  Tag        Id
  Alphabets  1
  Baby       2
  Comedy     3
  Kids       4
  Learning   5
  Alphabets  6

Второй свяжет тег с записью в первой таблице

  main_id    tag_id
  1          2
  1          4
  1          5
  1          6
  100        4
  100        5
  100        6

Затем вы можете просто выполнить поиск с помощью объединения междустолы.Это будет намного быстрее.Обязательно включите соответствующие индексы.

1 голос
/ 11 марта 2011

Вам действительно придется проанализировать, какие аспекты вашего сайта будут расти и каковы ваши цели.Будут ли тонны вставок?Будут ли тонны тегов?Вам нужно ответить на вопрос «Сколько вопросов имеет тег« Алфавит »?»Я ненавижу ответы "все зависит", но это действительно зависит от ваших целей и ожиданий.

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