【发布时间】:2012-04-27 16:49:27
【问题描述】:
我有一个主要包含 3 个表的数据库,(ImageID, imageName), (ImageID | Tags) 和 (tagID, tagName)
因此,每个图像都可以有许多与之关联的标签。我将如何高效且可扩展地选择 1 张图像并找到最相似的下 x 张图像(具有与其关联的相同标签)
全部使用 javascript、ajax 和 php 在网络上完成。感谢您提供有关如何处理此问题的任何建议和提示!
编辑:
是Mysql
格式为 (Table) 和 (ROW | ROW)
IMAGEID、TAGID 为主键
所以是的,有一个 IMAGEIDS 和 TAGIDS 的标准化索引来节省空间。
我想知道如果图像 A 与图像 B 有 10 个标签中的 10 个,它将返回高于图像 C 的 10 个标签中的 6 个。
抱歉含糊不清。我正在开发网站,所以如果无法使用我所拥有的东西,我可以添加键、外键等。而且它不必在一个巨大的 SQL 语句中完成,我只是不想通过一次将我的第一行与每隔一行 1 进行比较而陷入 o(n^2) 的情况。
【问题讨论】:
-
每个表有哪些索引和外键可用?
-
我认为您需要更清楚地了解“下一张最相似的图片”。您是否只想按共同标签的数量对图像进行排名?或者更复杂的东西?或者,如果许多图像具有相同数量的共同标签,那么这些图像应该如何优先排序?
-
第二张表
( ImageID | Tags )中有什么内容。标签是否包含以空格分隔的标签名称列表?如果是这样,你就在一个糟糕的地方