2013-10-28 4 views
0

У меня есть большая таблица статей и вы хотите получить похожие статьи на основе сходства, например, у меня есть 2 статьи; Заголовок первой статьи - «Часть 1 статьи», а вторая статья - «Часть 2 статьи».Как получить комбинацию связанных строк

То, что я хочу эффективно, является результатом наиболее вероятных совпадений для статьи, основанной на названии, либо в случае ее изменения в текущей статье, либо продолжении статьи или модификации.

Пример:

article_title friendly_url id 
Article 1  article-1  013 
Article 2  article-2  023 
Example 1  example-1  034 
Example 3  example-3  016 
Example 2  example-2  015 

Так что, в идеале, как своего рода струнного матча, основанного на названии так пор «Статья 1» незавершенная статья (ы) будет «Статья 2» или «Пример 3 «Связанная статья (ы) будет« Пример 1 »и« Пример 2 ».

Примечание: заголовок может содержать более двух слов, и они могут включать специальные символы, например, заголовок может быть «Как: часть 1 учебника», а затем он будет связан с «Как выполнить: часть 2 учебника» ».

Моя идея состоит в том, что я могу использовать MySQL-запрос для выполнения этого, но оглядываясь на PHP может иметь некоторые более эффективные функции. Таблица содержит 1300+ статей, поэтому, делая это вручную, выбирая из списка, какая статья будет связана, не является жизнеспособным решением.

Приветствия заранее.

ответ

1

Нормализовать вашу базу данных, это позволит сделать этот материал намного проще. Под этим я подразумеваю создание собственной строки, в которой вы пишете идентификатор связанных статей. Нравится:

article_group article_title friendly_url id 
0    Article 1  article-1  013 
0    Article 2  article-2  023 
1    Example 1  example-1  034 
1    Example 3  example-3  016 
1    Example 2  example-2  015 

Тогда вы можете иметь собственную таблицу для названия каждой группы статей и другую информацию об этом. Если заголовок всегда один и тот же, но у него просто есть число, которое их отличает, то вы можете поместить его в группу и просто сохранить номер в приведенной выше таблице, и тогда есть ли какая-нибудь точка для friendly_url? Тем не менее, последние вопросы вам подходят.

+0

Проблема в том, что это будет сделано вручную или нет? И делать это вручную в базе данных 1300+ (привязать каждую статью к связанным с ней статьям) займет меня навсегда. – Joscplan

+0

Это отстой, звучит так, как будто кто-то его плохо проектировал. Хм, но да, база данных должна быть нормализована, если это нормальное явление. В любом случае, извините, я не уверен, как сделать именно то, что вы хотите в одном запросе SQL. –

Смежные вопросы