Реализация системы тегов в базе данных - PullRequest
2 голосов
/ 04 сентября 2011

Текущая структура

таблица [Теги]

TagID
TagName

стол [Магазины]

StoreID
StoreName
StoreCategory
StoreTagID

из-за этого в магазине будет только один тег, как я могу реализовать его, чтобы разрешить более одного тега Я сделал теги группы, но не работает и разбора, но это бесполезно, как tagid: tagname, tagid: tagname ...... для той же строки, но не эффективно.

Ответы [ 2 ]

3 голосов
/ 04 сентября 2011

Обычный способ сделать это - создать третью таблицу, например,

таблица [Store_Tags]

StoreID
TagID

Чтобы получить теги для Магазина, необходимо объединить теги Store_Tags с тегами, например,

SELECT TagName FROM Tags INNER JOIN Store_Tags USING(TagID) WHERE StoreID = ?

Альтернативным подходом было бы избегать использования таблицы тегов и помещать имя тега непосредственно в таблицу Store_Tags, это действительно зависит от того, как вы собираетесь использовать данные.

1 голос
/ 04 сентября 2011

StackOverflow имеет все теги в отдельной таблице БД

Posts
  PostId
PostTags
  PostId
  TagId
Tgas
  TagId
  TagName

вы можете сделать аналогичные

...