【问题标题】:Tag System Implementation in Database数据库中的标签系统实现
【发布时间】:2011-09-04 11:28:34
【问题描述】:

当前结构

表格[标签]

TagID
TagName

表格[商店]

StoreID
StoreName
StoreCategory
StoreTagID

这只会使商店有一个标签,我该如何实现它以允许多个标签 我制作了标签组,但也无法解析,但它没用 tagid:tagname,tagid:tagname……对于同一行但效率不高。

【问题讨论】:

标签: php mysql database tags tagging


【解决方案1】:

做这种事情的一种常见方法是创建第三个表,例如

表 [Store_Tags]

StoreID
TagID

获取商店的标签然后需要将 Store_Tags 加入到标签中,例如

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

另一种方法是避免使用 Tag 表并将 TagName 直接放在 Store_Tags 表中,这实际上取决于您打算如何使用数据。

【讨论】:

  • 所以 Store_Tags 表背后的想法是它使您能够为商店拥有多个标签。每当您想向商店添加新标签时,您都会插入一个新行,其中包含新标签的 StoreID 和 TagID。
【解决方案2】:

StackOverflow 的所有标签都在单独的 DB 表中

Posts
  PostId
PostTags
  PostId
  TagId
Tgas
  TagId
  TagName

你也可以这样做

【讨论】:

  • 你有链接支持吗?对我来说似乎不太可能,因为这无法被索引,从而使按标签的搜索效率低下。
  • 嗯,好的。但请注意,他们也有一个PostTags 表。该标签列表可能是它的非规范化版本。
  • @MartinSmith:是的,你说得对。 data.stackexchange.com/stackoverflow/q/111595 ...已编辑
猜你喜欢
  • 2010-12-21
  • 2012-09-02
  • 2017-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-04
  • 1970-01-01
相关资源
最近更新 更多