使用多个表插入数据库

时间:2012-06-18 03:29:53

标签: mysql database

我正在尝试构建一个允许照片标记的数据库。我希望照片应该显示标签,点击时应显示所有其他具有相同标签的照片。其中一种方法是使用查找表存储标签和照片的ID,但这需要插入至少3个表(照片表,标签表,查找表,我还必须搜索标签已经存在或没有的第一个天气)照片当我显示与特定标签相关的图像时,还需要更多时间。我认为第二种方式是制作标签表,并将照片表的id存储为外键和标签名称。在这里我只需要更新两个表而不进行搜索,并且在显示时我只使用两个表来匹配特定的标签条目。 帮我解决问题,并建议是否有其他可能的解决方案。插入和显示的速度很重要

2 个答案:

答案 0 :(得分:0)

你应该创建三个表。

照片,标签和photo_tags。 其中photo_tags是你的参考表。

这允许照片和标签具有多对多关系。

可以使用三张桌子。 在现实生活中,我们使用了许多表,如果用正确的连接编写select语句,数据库会非常快。

答案 1 :(得分:0)

您的照片和标签似乎有many-to-many relationship所谓的内容。照片可以有很多标签,标签可以有很多照片。

因此,您确实需要third table to represent this relationship。这通常称为连接表,因为它在JOIN查询中使用了两个正确的表。

这确实意味着还有一个表要维护,但这是建模这种关系的唯一方法(在大多数DBMS中包括MySQL)。

将标签添加到照片时,请查找该标签,如果该标签不存在,请创建该标签。然后使用该标记的ID和照片ID在连接表中插入一行。