Changes between Initial Version and Version 1 of Ticket #1257, comment 1


Ignore:
Timestamp:
Jan 18, 2024, 3:28:59 PM (4 months ago)
Author:
alx

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1257, comment 1

    initial v1  
    2424Когда пользователь, например, обнаружив опечатку в комментарии, записывает исправленную версию комментария, в поле предыдущей (первой) записи записывается ID новой (исправленной) записи. Таким образом, формируется список истории ревизий этой записи. Строго говоря, этого было бы достаточно для реализации поставленной в п. 1 задачи.
    2525
    26 Вероятно, было бы полезно сделать этот список двунаправленным, а не однонаправленным - то есть иметь не один, а два дополнительных столбца со ссылками: один (`prev_rev`) ссылается на предыдущую ревизию записи, другой (`next_rev`) - на следующую. Например получить последние ревизии всех записей можно по условию `IS_NULL(next_rev)`. Условием того, что запись была изменена, будет непустое поле `prev_rev` - по этому условию можно в веб-интерфейсе делать пометку "изменена Васей 3 дня назад". Ну и ссылки на просмотр предыдущей и следующей ревизий комментария, я думаю, понятно как в этом варианте сделать.
     26Вероятно, было бы удобно сделать этот список двунаправленным, а не однонаправленным - то есть иметь не один, а два дополнительных столбца со ссылками: один (`prev_rev`) ссылается на предыдущую ревизию записи, другой (`next_rev`) - на следующую. Например получить последние ревизии всех записей можно по условию `IS_NULL(next_rev)`. Условием того, что запись была изменена, будет непустое поле `prev_rev` - по этому условию можно в веб-интерфейсе делать пометку "изменена Васей 3 дня назад". Ну и ссылки на просмотр предыдущей и следующей ревизий комментария, я думаю, понятно как в этом варианте сделать.
    2727
    28 Дополнительно может быть полезно хранить ссылку на самую первую ревизию (`first_rev`) - она может быть полезна для вывода истории в веб-интерфейсе - чтобы брать из нее значения полей `worker`, `date`, `type_write` и т.п. В самой первой ревизии туда можно тоже заносить NULL.
     28Дополнительно может быть полезно хранить ссылку на самую первую ревизию (`first_rev`) - она может быть полезна (сократит время поиска самой первой ревизии записи) для вывода истории в веб-интерфейсе - чтобы брать из нее значения полей `worker`, `date`, `type_write` и т.п. В самой первой ревизии туда можно тоже заносить NULL.
    2929
    3030Также рекомендую посмотреть, как это организовано в trac (я сам не смотрел).