【发布时间】:2010-08-31 09:45:25
【问题描述】:
我正在尝试让查询返回 3 篇与用户正在阅读的文章相关的文章。为此,我制作了一个表格,其中包含一组与所有文章相关的标签(每篇文章最多 5 个标签)。
- 如何构建查询以最有效地返回 3 篇相关文章?
- 如果没有相关文章 - 如何返回 3 个随机数?
这是我所拥有的:
CREATE TABLE IF NOT EXISTS `j_news` (
`n_id` smallint(5) NOT NULL AUTO_INCREMENT,
`n_title` varchar(94) COLLATE utf8_danish_ci NOT NULL,
`n_text` text COLLATE utf8_danish_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci AUTO_INCREMENT=25 ;
CREATE TABLE IF NOT EXISTS `j_news_tags` (
`nt_id` mediumint(7) NOT NULL AUTO_INCREMENT,
`nt_news_id` mediumint(7) NOT NULL,
`nt_tag` varchar(24) COLLATE utf8_danish_ci NOT NULL,
PRIMARY KEY (`nt_id`),
KEY `nt_news_id` (`nt_news_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci AUTO_INCREMENT=1 ;
【问题讨论】:
标签: mysql