首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索带有标签的图像

问搜索带有标签的图像
EN

Stack Overflow用户
提问于 2012-08-21 20:34:51
回答 2查看 74关注 0票数 1

我有一个大约700张图片的数据库,但我想创建一个搜索栏,以便我可以找到他们的标签。

我该怎么开始这样做呢。

我相信你会在mysql database...How中添加标签,我是怎么做的,我该如何做多个标签呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-21 20:37:24

另外有一个表tags,它的列是:id和name,它将包含所有可能的标记,另一个表image_tags将包含一个image_id和一个tag_id。

代码语言:javascript
复制
|   tags   |
+---+------+
| 1 | cats |
| 2 | dogs |
| 3 | foo  |

|         image_tags        |
+---------------------------+
| 1 (cat image)         | 1 |
| 1                     | 3 |
| 2 (dog image)         | 2 |
| 3 (cat and dog image) | 1 |
| 3                     | 2 |

这样,同一个图像可以有多个标签,并且同一个标签可以出现在多个表中。

这就是所谓的多对多关系。

票数 3
EN

Stack Overflow用户

发布于 2012-08-21 20:42:31

这是经典的“多对多”关系。

要创建基于标签的系统,您应该在数据库中创建2个新的tales (假设是"tags“和"tags_images”表)。

在“标签”表中,你将有两个字段:"id“和"tag”。

在"tags_images“表中,您将有3个字段:"id”、"tag_id“和"image_id”。

因此,要向图像添加标记,只需向连接标记(通过'tag_id')和图像(bt "image_id")的"tags_images“表中添加新记录即可。

此外,您还必须添加一个新的标签到“标签”表中,因为没有这样的标签。

要获得标记为"dog“的所有图像,您应该执行简单的sql连接查询,如下所示:

代码语言:javascript
复制
SELECT `tags`.*, `images`.*
FROM `tags` t
INNER JOIN `tags_images` ti ON t.`id` = ti.`tag_id`
INNER JOIN `images` i ON i.`id` = ti.`image_id`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12054954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档