Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: История изменения
 
 автор: NovikovMA   (23.07.2007 в 14:59)   письмо автору
 
 

Есть таблица из нескольких полей. У пользователя есть возможность редактировать их. Необходимо сделать систему, которая бы запоминала историю изменения. Причем пользователю показывала бы последний вариант, а админу - все...
Как лучше сделать? В этой же же таблице записывать измененные данные новой строкой? но что делать тогда с выбором? надо несколько id'ов, чтоли...

Подскажите, как правильно сформировать базу?
чего-то мозг сломался :-(

   
 
 автор: Trianon   (23.07.2007 в 15:08)   письмо автору
 
   для: NovikovMA   (23.07.2007 в 14:59)
 

Можно копировать записи в таблицу истории.
Либо можно внести поле edition типа int NOT NULL DEFAULT 0 и ко всем полям edition записей с одним фактическим id добавлять единицу.
Для выборки приенять SELECT * FROM tbl WHERE edition=0

   
 
 автор: NovikovMA   (23.07.2007 в 15:21)   письмо автору
 
   для: Trianon   (23.07.2007 в 15:08)
 

С edition - это хорошо. Это решает проблему с выводом последнего изменения, но затрудняет вывод изменений...
Я бы хотел выводить изменения "по полям". Т.е. например хотел бы видеть для каждого поля последний вариант, потом предпоследний и т.д. А если поле не менялось (не обязательно же все меняется), то показывать один вариант... Тогда походу получается проблема с id'ом, ибо просто distinct'ом не обойтись..

   
 
 автор: Trianon   (23.07.2007 в 15:31)   письмо автору
 
   для: NovikovMA   (23.07.2007 в 15:21)
 

SELECT * FROM tbl
WHERE instance_id = $instance
ORDER BY edition ASC

   
 
 автор: oradev   (23.07.2007 в 15:37)   письмо автору
 
   для: NovikovMA   (23.07.2007 в 15:21)
 

>С edition - это хорошо. Это решает проблему с выводом последнего изменения, но затрудняет вывод изменений...
>Я бы хотел выводить изменения "по полям". Т.е. например хотел бы видеть для каждого поля последний вариант, потом предпоследний и т.д. А если поле не менялось (не обязательно же все меняется), то показывать один вариант... Тогда походу получается проблема с id'ом, ибо просто distinct'ом не обойтись..

Почему бы не написать триггер на вставку, удаления или обновления на эту табличку, в котором измененные данные записываются в history table по текущей дате.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования