Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

временные срезы дерева

3.9K
04 декабря 2008 года
АКМ
49 / / 07.06.2005
надо решить такой вопрос - как организовать хранение в таблицах БД иерархического дерева (наподобие папок и подпапок) так, чтобы можно было оценить его структуру на заданный момент времени. т.е., например, добавили сегодня ряд каталогов. по состоянию на текущий момент - они отображаются. надо как-то хранить информацию о том, каким было дерево до изменения.
возможными операциями могут быть добавление нового каталога, удаление, изменение уровня элемента, добавление элементов в каталог, смена названия,др.атрибутов и т.д.

как сохранить само дерево - не вопрос :). как сделать остальное - главное.
39K
05 декабря 2008 года
Aristarh Dark
8 / / 07.06.2008
Добавить 3 поля: CreateDate, ChangeDate, DeleteDate, ну и естественно удаленные ветки не удалять в реале, а "помечать на удаление".
3.9K
05 декабря 2008 года
АКМ
49 / / 07.06.2005
создали мы объект дерева. затем в разное время переименовали три раза. одного поля для отображения изменений как-то маловато.

есть некоторые мысли:
1. основную таблицу сделать такой:
Id - ид таблицы
ParentId - указатель на родительский элемент
Name - атрибут объекта (название)
DateTimeCreate - дата и время создания
DateTimeDelete - дата и время удаления (если не нуль, то объект удален в такое-то время)

2. вторую таблицу сделать такой:
Id - ид таблицы
Action - событие из перечня возможных
ActionDate - дата события
IdObject - ид объекта из первой таблицы, с которым происходит событие (если нуль, то событие со всей системой объектов)

только как быть, если некоторые действия над объектами растянуты во времени?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог