Mis*_*hko 3 mysql sql database database-design
我想建立一个图片数据库.每个图片可以具有1个或多个标签,例如:Paris
,April 2010
,David
.
你会如何存储这些信息?我想有一个Files
每个文件有一行的表,其中一列是用逗号分隔的标签ID,例如:2,4,14,15
在其他表中,Tags
我认为每个标签有1行,如下所示:
Tag ID Tag Name
------ --------
1 April
2 David
3 Paris
Run Code Online (Sandbox Code Playgroud)
您认为管理这样的标签是个好主意吗?例如,如何轻松获取特定图片的所有标签名称?
Fos*_*sco 11
你应该有3个表.文件,标签和文件标签.
FileTags应具有文件ID和标签ID.一行用于一个标签分配.
然后,您可以使用特定标记轻松查询所有文件:
select distinct f.* from Files f
join FileTags ft on f.FileID = ft.FileID
join Tags t on ft.TagID = t.TagID
where t.TagName = 'Paris'
Run Code Online (Sandbox Code Playgroud)
或者任何文件的所有标签:
select distinct t.* from Files f
join FileTags ft on f.FileID = ft.FileID
join Tags t on ft.TagID = t.TagID
where f.FileID = 7
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
868 次 |
最近记录: |