0

我有一个图像表,其中有一列名为tags. 一个典型的条目如下所示:

id    link    tags
-------------------
1     [link]  funny,not-cool,work

我有一个搜索页面,用户可以在其中输入标签来搜索图像。他们可以输入以逗号分隔的任意数量的标签

Search: funny, fall, fail

问题是,在数据库中搜索这些标签的最佳方式是什么?会不会很简单LIKE?我知道将每个标签添加到不同的表格中而不用逗号分隔可能更理想,所以如果我需要更改标签的工作方式,我会这样做。

4

1 回答 1

0

在这里有多个表可能会更好。第一个表将被称为imagesand 只是idand link。第二个表将被调用tags,每一行都是一个特定的标签,比如列idtag。第三个表将是一个连接表,称为类似于imagetagsid、、imagetag。in的imageimagetags将是 的外键,imagestag列将是 的外键tags

使用您的示例搜索 SQL 将类似于:

SELECT images.link 
FROM images 
JOIN imagetags on images.id = imagetags.image
JOIN tags on tags.id = imagetags.tag
WHERE tags.tag in ('funny','fall','fail')
于 2013-05-13T04:16:28.557 回答