Как создать "Все правки отслеживаются" - PullRequest
1 голос
/ 23 марта 2011

Я использую PHP (Yii-framework) и базу данных MySQL на моем сайте.

Пользователи могут публиковать и редактировать некоторые статьи.Как я могу сохранить каждую редактируемую версию, как здесь, в SO?(Как и Википедия, этот сайт редактируется совместно, и все изменения отслеживаются )

Что мне использовать и как?Структура базы данных?Некоторые библиотеки?Какие ключевые слова я должен использовать для Google?:)

UPD .А как отобразить изменения между ревизиями, как здесь, в SO?

Спасибо

Ответы [ 2 ]

2 голосов
/ 23 марта 2011

Я бы использовал вашу текущую структуру базы данных (если она у вас есть, в противном случае создайте одну со всеми необходимыми полями), но добавьте 1 или два дополнительных столбца, наиболее важным из которых является номер редакции.Это может быть просто увеличено каждый раз, когда пересмотр сделан.Это может быть сложным, чтобы кодировать чисто в команду INSERT базы данных (обратите внимание, используйте INSERT, а не UPDATE, потому что вы хотите сохранить старый пост).

Другим способом было бы иметь столбец, хранящий время отправки обновления (может быть, просто «время создания»), и из этого вы можете определить, сколько обновлений было (количество строк), ив каком порядке (по дате).

0 голосов
/ 23 марта 2011

Вы ищете PHP ORM с возможностью ведения журнала аудита . Что такое ORM, встроенный в инфраструктуру Yii?

Я знаю, что Symfony использует Doctrine и имеет выделенный Версионный плагин , который делает именно то, что вы хотите.

Может быть, " logable_behavio r" Скелет Yii может вам помочь.

...