Здравствуйте, есть три таблицы, news, words, index
Таблица newsCREATE TABLE IF NOT EXISTS `news` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`content` text NOT NULL,
`link` varchar(255) NOT NULL,
`category` int(11) NOT NULL,
`publishedDate` datetime NOT NULL,
`source` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;
Таблица wordsCREATE TABLE IF NOT EXISTS `words` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`word` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;
Таблица indexCREATE TABLE IF NOT EXISTS `index` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` int(1) NOT NULL,
`wordid` int(11) NOT NULL,
`itemid` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`),
KEY `id_2` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;
Таблица news, постоянно индексируется на предмет слов, эти данные заносятся в таблицу index, и еще не добавленные слова вносятся в таблицу words.
Есть материалы в которых используются похожие наборы слов и по этому признаку материалы можно объединить в группы. Как мне найти такие группы за минимальное количество запросов к базе?