2010-10-11 6 views
1

Я сделал эту скромную CMS в PHP (и Zend Framework).CMS: синхронизировать ссылки на внутренние страницы в содержимом страницы

Содержание страницы опубликованного веб-сайта хранится в поле MySQL TEXT. При редактировании содержимого страницы можно создавать ссылки на другие внутренние страницы веб-сайта.

Страницы пули (SEO uri's) также доступны для редактирования в CMS.

Что такое хороший способ синхронизации внутренних ссылок в контенте, когда связанный с ним слизень страницы изменен конечным пользователем CMS?

Я приветствую решения, от простых и надежных решений (без большого количества рефакторинга базы данных), до более сложных и гибких, для чего требуется рефакторинг базы данных и т. Д. Какие хорошие идеи для этого?

Заранее спасибо.

PS .: Его не нужно указывать в PHP/MySQL. Просто глобальная концепция, вероятно, сделает все возможное, если только это не является чем-то непонятным, что PHP/MySQL не может справиться, конечно.

ответ

0

Вариант 1:

Поиск контента для улиток URL-адресов при вставке/обновления контента, и хранить их в таблице, которая относится слизняк URLs к их идентификаторам и ид контента. ('slug_content_map')

Затем вы можете добавить метод, который заменяет старый URL-адрес пула новым URL-адресом в содержимом при обновлении URL-адреса, если содержание содержит запись в 'slug_content_map'.

Вариант 2:

При вставке/обновлении контента, заменить противослизневых URL-адреса со строкой, такие как {slugId: 3}, а затем заменить, что динамически при отображении контента. Этот метод имеет больше накладных расходов при отображении содержимого, так как вам придется искать пул, чтобы его заменить.

1

Вот как некоторые системы управления контентом подойти к нему, и в целом это, кажется, лучший баланс, насколько производительность во время выполнения, производительность редактирования времени и управляемости:

Держите таблицу страниц и ссылок:

|PageID |LinksToID | 
|----------|-------------| 
|1   |2   | 
|1   |3   | 
  1. При сохранении страницы (Foo), найти все ссылки на этой странице (не очень интенсивные), найти, где каждая из них ссылки на (тривиально, так как, конечно, вы ваши страницы индексируются URL, право ?).
  2. Заполните эту таблицу этой информацией (страница 1 содержит ссылки на страницы 2 и 3).
  3. Когда страница 3 переименована, вернитесь к этой таблице и потяните все страницы, которые ссылаются на нее; искать их содержимое для URL-адресов на стр. 3, заменять и обновлять.

Не влияет на время работы и влияние на изменение времени. И вы получаете удобную, легко запрашиваемую карту всех перекрестных ссылок на вашем сайте. Бонус!