Удаление объектов из БД

Здесь обсуждаем систему TDM/PDM/Workflow Lotsia PDM PLUS (PartY PLUS).
Ответить
Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Удаление объектов из БД

Сообщение Anderyt »

коллеги, поделитесь пожалуйста опытом, кто как организовал удаление из БД объектов, которые были удалены из дерева?
когда то в 2007 году было близкое обсуждение, посмотрел его, но вопрос остался.
проблема в чем..
юзеры удаляют объекты из дерева, в итоге объект остается сам по себе, без родителей. мы такие объекты периодически ищем, помечаем для удаления, даем отлежаться 2 месяца, если за это время никто про него не вспомнил и не добавил ни в какое дерево, мы этот объект удаляем.
ессно, все это делаем стопками, через подборку, но удаление объекта из БД - процедура длительная (и приводящая к блокировкам с запросами юзеров) и полностью ручная, чтобы не мешать никому - приходится это делать в нерабочее время. а это уже начинает надоедать...
а какие есть варианты?
если объекты все таки НАДО удалить из БД (они совсем ненужные)
лучше день потерять, потом за пять минут долететь!
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Re: Удаление объектов из БД

Сообщение Александр »

мы делаем просто - на дереве организации повесили отчет по ключевым 'потерянным' объектам (пользовательский отчет на атрибутивной форме), у нас только один отчет и интересует один тип объектов его могут видеть все или не все - неважно - главное он оперативно доступен
16.gif
16.gif (18.09 КБ) 19483 просмотра
1. новым юзерам - мы говорим - нельзя нажимать кнопку DEL в дереве проекта - вы ничего не испортите но сломаете структуру, мы это увидим и будем с вами разговаривать :? :? :? :? :? :? как то так
2. периодически смотрим на потерянные объекты в отчете шаговой доступности - и говорим тем кто их потерял - нехорошо :? :? :? :? , ну и привязываем их обратно, легко, т.к. в нашей структуре каждый объект имеет атрибут Родитель с id
3. для тех кто хочет удалить объект (не все только разрешенные, без документов ну и т.д. в общем новые и ошибочные) из базы - есть действие по разрыву всех связей и привязке к локальной корзине - корзину видит только админ - и безоговорочно удаляет объекты из БД по такому алгоритму
3.1. берется каждый объект из локальной корзины
3.2. у него рушатся все связи и он чистый привязывается к локальному объекту 'шредер'
17.gif
17.gif (8.47 КБ) 19483 просмотра
3.3. берем все объекты из шредера вставляем их в подборку а связь с шредером удаляем
3.4. удаляем все объекты подборки из бд
4. для тех кто хочет удалить объект но не хочет удалять его из базы (типа сохранить историю) у нас в каждом значимом дереве есть локальная папка архив куда этот объект и перемещается и лежит вечно, - что важно в данном случае - эти объекты не попадают в поиск, в отчетах или действиях (у нас весь поиск на 90% построен на обработке дочерних элементов, и если элемент выпадает из дочерних переходя на другой уровень его и не видно), или попадают со специфическими отметками типа - более не доступен, ну и т.д.
18.gif
18.gif (19.29 КБ) 19483 просмотра
в общем особенно не паримся
посмотрели отчет сделали замечание удалили из бд - пара минут всех делов :? :? :? :?

ps
кстати по архивам в деревьях проектов у нас тоже кое что есть :? :? :?
есть действие которое архивные объекты перепривязывает из архива в дочерний элемент с названием 'архив более полугода', ну типа объектов в архиве много и долго открывается если что - а так в основном архиве только свежее а все старое в подархиве - во как!!!!

pps
чет я соскучился по форуму Лоции с этим 1Эсом совсем деградировал - думал буду работать а на самом деле сижу одни глюки ловлю и с техподдержкой 1Эса ругаюсь, надеюсь скоро завалю их форум бесплатными решениями )) :? :? :? :?

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Re: Удаление объектов из БД

Сообщение Anderyt »

спасибо за ответ :-)
да, у вас другой подход.. у нас видимо больше реально ненужных объектов, структуры разные, видимо поэтому...
уже после своего поста попробовал поудалять объекты из БД в рабочее время и - о чудо! - никаких блокировок пока не случалось :-) транзакция идет, но никому не мешает. даже подозрительно как то... но объекты удаляются.
надо бы как нить проверить, удалились ли атрибуты этих объектов.. а то вдруг остались записи об атрибутах объектов, а самих объектов уже нет.. просто ну очень все подозрительно быстро.. по сравнению с тем, что было раньше, в старых версиях...
лучше день потерять, потом за пять минут долететь!
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Re: Удаление объектов из БД

Сообщение Александр »

во это кстати мысль интересная...
думаешь мусор мог остаться? кстати мог ведь значения могут использоваться в других объектах
лан - напиши потом, чистит ли Лоция за собой не используемые значения атрибутов

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

os_cherepanova
Новый участник
Сообщения: 23
Зарегистрирован: 19 сен 2011, 15:35
Используемое ПО: Lotsia PDM PLUS
Откуда: Воронеж

Re: Удаление объектов из БД

Сообщение os_cherepanova »

У нас для пользователей запрещены почти все действия по правой кнопке и удаление по кнопке Del :D Только по написанному нами шаблону, который помечает объект как удалённый.


Если подробно описать удаление, то выглядит это так:

Для удаления объекта пользователем написали шаблончик, который по нажатию кнопки на форме отнимает на объект права на объект и его потомки у всех, кроме администратора, добавляет объект в служебный объект-корзину, помечая, кто и когда удалил. При этом у объектов, которые расположены под удалённым объектом, не удаляем ничего, ни документы, ни связи (если дочерний объект входит куда-то ещё, он становится невидимым, хотя мы стараемся избегать множественных входимостей по возможности). Это позволяет в случае чего быстро восстановить документ и увидеть, кто и когда его удалил.

Если через некоторое время (обычно в новый год) никто не спохватился, что удалил объект случайно - через подборку добавляем проекты по фильтру "УДАЛЕНО - ", удаляем у них все связи и документы действием , а затем удаляем их из БД.
Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Re: Удаление объектов из БД

Сообщение Anderyt »

как у вас у всех это автоматизировано.. однако...
у нас только для некоторых объектов настроены шаблоны для удаления.
а как запретить удаление по кнопке Дел ? что то не соображу пока
лучше день потерять, потом за пять минут долететь!
Аватара пользователя
Старик Крупский
Активный участник
Сообщения: 803
Зарегистрирован: 27 июл 2006, 22:17
Откуда: Москва

Re: Удаление объектов из БД

Сообщение Старик Крупский »

Anderyt писал(а):а как запретить удаление по кнопке Дел ? что то не соображу пока
В настройке меню объектов убираем пункт Удалить из проекта.

Точно так же очень полезно убрать пункт добавления в проект. Чтобы объекты мышкой не таскали между проектами.
"Лучше меньше, да лучше" (C)
Ответить