Я собираю сайт, управляемый БД, с помощью Kohana, и мне нужно иметь возможность отслеживать изменения. Итак, у меня есть данные за отдельными страницами в двух таблицах. Первая - это общая таблица сущностей, которую я использую для отслеживания всего содержимого сайтов. Он содержит основную информацию: идентификатор ресурса, псевдоним uri, имя пользователя, дату создания и пользователя публикации, а также модель содержимого. Таблица редакций содержит rev_id, идентификатор ресурса в виде FK, заголовок, содержимое страницы, создатель редакции, дату редакции и утверждающий публикации.
Сайт выполнит поиск страницы по идентификатору ресурса или псевдониму uri и вернет самую последнюю опубликованную ревизию. Однако из uri пользователь может откатить страницу до более ранних ревизий, включив верхний предел даты в uri или - # для отката # ревизий.
Таким образом, контроллер страницы будет принимать идентификатор ресурса, возможно, дату и количество откатов изменений, запрашивая соответствующую запись у моделей и передавая соответствующую запись в представление.
Создание новых страниц обновит обе таблицы, обновление страниц обновит одну таблицу, а удаление таблиц повлияет на одну таблицу.
Должен ли я создавать две модели, модель сущностей и модель пересмотра? Или мне нужна только одна логическая модель, которая абстрагирует реальную структуру?