我有一个约700张图片的数据库,但我想创建一个搜索栏,以便我可以通过标签找到它们。
我将如何开始这样做。
我相信你会在mysql数据库中添加标签......我该怎么办?我怎么做多个标签?
答案 0 :(得分:3)
有一个额外的表tags
,其列将是:id
和name
,其中包含所有可能的标记,另一个表image_tags
,其中包含{ {1}}和image_id
。
tag_id
这样,同一图像可以有多个标签,同一个标签可以出现在多个表格上。
这称为多对多关系。
答案 1 :(得分:0)
这是经典的“多对多”关系。
要创建基于标签的系统,您应该在DB中创建2个新故事(假设“tags”和“tags_images”表)。
在“tags”表格中,你有两个字段:“id”和“tag”。
在“tags_images”表中,你有3个字段:“id”,“tag_id”和“image_id”。
因此,要向iamge添加标签,只需将新记录添加到“tags_images”表连接标记(通过'tag_id')和图像(bt“image_id”)。
此外,您还必须在“标签”表中添加新标签,而不是这样。
要获取标签为“dog”的所有图像,您应该进行简单的sql JOIN查询,如:
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`