powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Сохранение истории иерархии
14 сообщений из 14, страница 1 из 1
Сохранение истории иерархии
    #33740305
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Есть вот такая таблица (например) с 2 столбцами, название заказа и код подразделения который выписал данный заказ:
Заказ Подразделение
Утюг 100
Стол 100
Тазик 250

Сами подразделения хранятся с учетом хранения вложенности, т.е. родитель-потомок

Код подразделения Название Родитель
01 Управление 00
02 Дирекция 00
100 Бухгалтерия 01
200 Заместители 02

Ну что-то вроде этого. Т.е. подразделения входят одно в другое.
И вот такая вот задача: У как сохранить всю историю иерархии? Т.е. я могу сохранить, что 100 в 2006 году это была бухгалтерия. А как хранить, что Бухгалтерия была в управлении?


Т.е. есть оргструктура, которая очень часто меняется. Это бог с ним - можно решить. Но как хранить история ее изменения? Т.е. мои записи должны показывать в зависимости от того какая дата - ту иерархию которая была на тот момент времени...

Вот такая вот задачка, если конено вразумительно смог объяснить...
...
Рейтинг: 0 / 0
Сохранение истории иерархии
    #33740934
Фотография Br. Potemkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вводишь 2 поля - Дата_Начала и Дата_Окончания.
Записи в таблице не обновляешь, а добавляешь новые.
В них пишешь даты действия. Т.о. получаешь все что нужно на любой момент времени... тока табличка будет потихоньку расти, но, думаю, это не критично для данной ситуации
...
Рейтинг: 0 / 0
Сохранение истории иерархии
    #33745585
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!

С датами вроде немного понятно. Но тогда получается что в таблице заказов рядом с полем где содержится код, необходимо будет указывать дату?
Ну и соответсвенно все выборки делать с учетом даты?

Хлопотно конечно получится учитывая что это дело хранится не только в базе заказов. Но похоже это единственный вариант.

Или может еще есть какие варианты?
...
Рейтинг: 0 / 0
Сохранение истории иерархии
    #33745976
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ты определись, что ты автоматизируешь?
- если бухгалтерию, то Утюг идёт не на подразделение, а на материально ответственное лицо.
- если историю развития организации, то причём тут Утюг?
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Сохранение истории иерархии
    #33746746
Фотография Br. Potemkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользуйте view-хи! Пускай туда попадают только актуальные записи. Выбирать проще будет.
...
Рейтинг: 0 / 0
Сохранение истории иерархии
    #33747965
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
View - это понятно, только еще до этого не дошел. Еще базу то не спроектировал!

Автоматизировать планируется - работа с договорами. Ну и там соответсвенно разные графы типа "подписал".
Например подписал Иванов, он был в 2005 году директором, а в 2006 его перевели в сторожи. И в оргструктуре он в сторожах.

Но когда открываем договор за 2005 год, то должны видеть, что подписывал его директор Иванов, который был в структуре ДИРЕКЦИЯ ПРЕДПРИЯТИЯ.

Ну вот примерно для этого...
...
Рейтинг: 0 / 0
Сохранение истории иерархии
    #33748127
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
История документов - вещь несколько особая.
Кем был Иванов на дату подписания договора ? - чистая история.
Какая должность была указана в договоре в момент подписания? - характеристика собственно договора. В какой-то момент она может разойтись с историей.
...
Рейтинг: 0 / 0
Сохранение истории иерархии
    #33748198
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторАвтоматизировать планируется - работа с договорами.
Например подписал Иванов, он был в 2005 году директором, а в 2006 его перевели в сторожи.
Но когда открываем договор за 2005 год, то должны видеть, что подписывал его директор Иванов, который был в структуре ДИРЕКЦИЯ ПРЕДПРИЯТИЯ.

вы уверены, что это не ваша инициатива, а заказчика БД?
Т.к. закон обратной силы не имеет (если директор стал дворником, то документ - договор всё равно в силе).
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Сохранение истории иерархии
    #33749311
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если бы моя инициатива - парился бы я !?

В том то и дело, что хотят знать где и кем работал данный сотрудник на тот момент времени. Т.е. ФИО, должность, иерархия подразделений, т.к. например бухгалтеры могут быть в разных службах, а функции разные.


Понятное дело что можно поднять историю через ОК, но хотят видеть в программе...
...
Рейтинг: 0 / 0
Сохранение истории иерархии
    #33749430
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
as111Если бы моя инициатива - парился бы я !?
В том то и дело, что хотят знать где и кем работал данный сотрудник на тот момент времени.
======= на тот или на этот? Или на тот а в скобках на этот?Т.е. ФИО, должность, иерархия подразделений, т.к. например бухгалтеры могут быть в разных службах, а функции разные.
Понятное дело что можно поднять историю через ОК, но хотят видеть в программе...
есть договор, у него есть поля. Для:
авторВ том то и дело, что хотят знать где и кем работал данный сотрудник на тот момент времени.
в запись о договоре достаточно продублировать в копии
Должность

id Название ФИО_Визировавшего ДолжностьНаМоментПодписи112 ДоговорНаРаботы Иванов_Иван_Иванович Заместитель
...
Рейтинг: 0 / 0
Сохранение истории иерархии
    #33749531
Фотография Br. Potemkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да... задача... Я бы написал сохраненку, возвращающую курсор. Параметром передавал время, а клиентское приложение привязал бы к сохраненке. Вообще методов много, как лучше сделать - известно наверно только вам.
...
Рейтинг: 0 / 0
Сохранение истории иерархии
    #33756091
olegenty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я для хранения истории реализовал "псевдо-транзакционность". есть основные таблицы:
1. Класс
2. Экземпляр класса
3. Состояние экземпляра класса
4. Действие, приведшее к изменению состояния экземпляра класса
5-n. Таблицы с реальными данными, которые привязаны к таблице 3

так можно хранить всё, что угодно, и видеть всю историю изменений. но! связи между экземплярами классов получаются нереляционными, а это усложняет работу с БД.
...
Рейтинг: 0 / 0
Сохранение истории иерархии
    #33791413
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ещё подход.
Храним действующих лиц - подразделение, сотрудник, должность и т.д. Это статические объекты. Однажды появившись в системе они остаются в ней навсегда в неизменном виде.
И храним факты: в такой то момент сотрудник занимал должность в подразделении.
Абстрактный факт может быть связан с внешним событием, например с назначением сотрудника на должность, подписанием договора и т.д.
...
Рейтинг: 0 / 0
Сохранение истории иерархии
    #33791553
Фотография smeh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стандартная работа периодических полей в 1С.
Все просто.
Имеем сущности:
1. Сотрудник
2. Должность
3. Подразделение - не иерархическое, просто список всех подразделений
4. Документ, в котором естественно должна быть дата подписания иначе что за документ без даты :-)

Имеем таблицы:
Должность сотрудника ИдСотрудник ИдДолжность Дата

Иерархия подразделений ИдПодразделения ИдРодителя

запрос на выбор должности сотрудника, на нужную нам дату (которую можно и из документа взять)
Код: plaintext
1.
2.
3.
4.
5.
select top   1  ИдДолжность
from [Должность сотрудника]
where ИдСотрудник = @ИдСотр
and Дата <= @Дата
order by Дата desc

с иерархией тоже самое. думаю разберетесь.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Сохранение истории иерархии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]