powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение орг. структуры и несколько руководителей подразделения
18 сообщений из 18, страница 1 из 1
Хранение орг. структуры и несколько руководителей подразделения
    #39361726
TAIPHOON
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас планирую структуру БД, а именно участок хранения орг. структуры компании. Возникает несколько вопросов:
1. Имеет ли смысл использовать тип HierarchyID? Ведь у него много недостатков, таких, как отсутствие контроля целостности и перестройка всего куста, при его переносе.
2. В некоторых случаях есть два руководителя подразделения, которые работают посменно (например администраторы торгового зала). Как их хранить? Ведь у их подчинённых нет единого родителя...
Как я вижу эту часть структуры БД:
Сотрудники:
Код: sql
1.
2.
3.
4.
5.
6.
CREATE TABLE employee
(
    EmployeeID int NOT NULL,
    EmpName    varchar(20) NOT NULL,
    ...
)


Сама структура:
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE structure
{
    StructureID int NOT NULL,
    OrgUnitName varchar(30),
    ManagerID int,
    CurrentEmp int --Нужно хранить для быстроты выборки, но тут вопрос, что делать, если выставят, что через неделю произойдёт замена... Думать что то типа планировщика на ночь? И как быть с двумя сотрудника на одном уровне?
}


И история изменений. Что то типа:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE TABLE HistoryStruct
{
    ID int NOT NULL,
    StructID int,
    EmpID int,
    DateFrom datetime,
    DateTo datetime
}
...
Рейтинг: 0 / 0
Хранение орг. структуры и несколько руководителей подразделения
    #39361728
TAIPHOON
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И ещё вопрос: если подразделение переименовывается и/или переподчиняется, то мы переносим ветку, или помечаем, как старую (удалённую), и создаём новую?
...
Рейтинг: 0 / 0
Хранение орг. структуры и несколько руководителей подразделения
    #39361859
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TAIPHOON В некоторых случаях есть два руководителя подразделения, которые работают посменно (например администраторы торгового зала)

Нужно разделить понятия "штатная единица" и "человек".

Штатная единица одна - "администратор торгового зала", ей подчиняются штатные единицы-сотрудники. А людей к ней относятся двое. Могут, кстати, вообще ноль, если она вакантная.

Разделение штатных единиц и людей полезно еще тем, что некоторые люди могут работать сразу на нескольких должностях (и, соответственно, подчиняться сразу нескольким руководителям).
...
Рейтинг: 0 / 0
Хранение орг. структуры и несколько руководителей подразделения
    #39361933
TAIPHOON
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cane Cat FisherНужно разделить понятия "штатная единица" и "человек".

Так у меня как бы и разделено. Или имеется ввиду что то ещё?

Cane Cat FisherШтатная единица одна - "администратор торгового зала", ей подчиняются штатные единицы-сотрудники. А людей к ней относятся двое. Могут, кстати, вообще ноль, если она вакантная.

Разделение штатных единиц и людей полезно еще тем, что некоторые люди могут работать сразу на нескольких должностях (и, соответственно, подчиняться сразу нескольким руководителям).
Это понятно, но как это сделать с точки зрения структуры. Где хранить эти 0-2 записи о назначенных, а так же как отслеживать, что бы было не более 2? В особенности, что бы не делать ещё кучу лишних join при определении прав
...
Рейтинг: 0 / 0
Хранение орг. структуры и несколько руководителей подразделения
    #39361958
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TAIPHOONЭто понятно, но как это сделать с точки зрения структуры. Где хранить эти 0-2 записи о
назначенных, а так же как отслеживать, что бы было не более 2? В особенности, что бы не
делать ещё кучу лишних join при определении прав

Таблица штатных единиц, таблица сотрудников. В таблице штатных единиц - ссылка на
сотрудника, занимающего данный пост в данный момент.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Хранение орг. структуры и несколько руководителей подразделения
    #39361962
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovВ таблице штатных единиц - ссылка на сотрудника, занимающего данный пост в данный момент.


Вопрос был про администраторов торгового зала, работающих посменно.

Менять ссылку в штатной единице при каждом заступлении на смену очередного сотрудника?
...
Рейтинг: 0 / 0
Хранение орг. структуры и несколько руководителей подразделения
    #39361977
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherМенять ссылку в штатной единице при каждом заступлении на смену очередного сотрудника?

Разве в таком зале не три (или больше) отдельных штатных единицы администратора?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Хранение орг. структуры и несколько руководителей подразделения
    #39361982
TAIPHOON
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovРазве в таком зале не три (или больше) отдельных штатных единицы администратора?..

Обычно два, но как оно будет потом - хз, поэтому хардкодить двоих тоже не вариант. Главное, что больше одного, а, следовательно, просто указать ссылку на EmpID не получится
...
Рейтинг: 0 / 0
Хранение орг. структуры и несколько руководителей подразделения
    #39361987
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovCane Cat FisherМенять ссылку в штатной единице при каждом заступлении на смену очередного сотрудника?

Разве в таком зале не три (или больше) отдельных штатных единицы администратора?..


Мне представилось, что администратор как штатная единица один, просто, скажем, до обеда это Иванов, а после обеда - Петров. Оба на пол-ставки, потому как студенты :)

Можно, конечно, выразить это двумя штатными единицами - "утренний администратор" и "послеобеденный администратор". Но тогда еще веселее - придется дважды в день переподчинять им кассиров и прочий персонал зала - ТС ведь актуальную иерархию хочет.
...
Рейтинг: 0 / 0
Хранение орг. структуры и несколько руководителей подразделения
    #39361992
buven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherDimitry Sibiryakovпропущено...

Разве в таком зале не три (или больше) отдельных штатных единицы администратора?..


Мне представилось, что администратор как штатная единица один, просто, скажем, до обеда это Иванов, а после обеда - Петров. Оба на пол-ставки, потому как студенты :)

Можно, конечно, выразить это двумя штатными единицами - "утренний администратор" и "послеобеденный администратор". Но тогда еще веселее - придется дважды в день переподчинять им кассиров и прочий персонал зала - ТС ведь актуальную иерархию хочет.

А если Администратор 1 + Администратор 2 + график работы ШЕ?
...
Рейтинг: 0 / 0
Хранение орг. структуры и несколько руководителей подразделения
    #39362004
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherМожно, конечно, выразить это двумя штатными единицами - "утренний администратор" и
"послеобеденный администратор". Но тогда еще веселее - придется дважды в день
переподчинять им кассиров и прочий персонал зала - ТС ведь актуальную иерархию хочет.

А подчинить их сразу всем администраторам - не вариант? Или в 12:01 кассир превращается
в тыкву может спокойно послать администратора, которому подчинялся ещё минуту назад?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Хранение орг. структуры и несколько руководителей подразделения
    #39362008
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buvenА если Администратор 1 + Администратор 2 + график работы ШЕ?

У ШЕ нет графика работы. Он есть у сотрудников, которые заполняют эти единицы. По-моему так.

То есть Иванов и Петров - администраторы зала. Иванов работает до обеда в чётные недели, а
Петров - после обеда. В нечётные недели - наоборот. Кассиры любому из них подчиняются в
любом случае и в любое время.

Нет, конечно, есть вариант, что когда Иванов при исполнении, Петров - пустое место, но это
явно не про магазин.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Хранение орг. структуры и несколько руководителей подразделения
    #39362077
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovCane Cat FisherМожно, конечно, выразить это двумя штатными единицами - "утренний администратор" и
"послеобеденный администратор". Но тогда еще веселее - придется дважды в день
переподчинять им кассиров и прочий персонал зала - ТС ведь актуальную иерархию хочет.

А подчинить их сразу всем администраторам - не вариант? Или в 12:01 кассир превращается
в тыкву может спокойно послать администратора, которому подчинялся ещё минуту назад?..


Подчинить сразу всем - бардак и бесхозяйственность. А если они противоречащие указания дадут, кого слушаться? Не говоря уже о том, что в БД вместо иерархии подчиненности лапша какая-то получается.

И да, если Петров явился на работу в неурочное время и начал командовать, то, разумеется, слушать его никто не будет. Наглядный пример - вне его расписания по его карточке кодовый замок не пустит его в служебное помещение, и правильно сделает.

На практике, пожалуй, лучше ориентироваться не на время 12:01, а на фактическую передачу смены другому администратору - кнопку "пост сдал, пост принял", но суть от этого не меняется.
...
Рейтинг: 0 / 0
Хранение орг. структуры и несколько руководителей подразделения
    #39362088
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherПодчинить сразу всем - бардак и бесхозяйственность. А если они противоречащие указания
дадут, кого слушаться? Не говоря уже о том, что в БД вместо иерархии подчиненности лапша
какая-то получается.
В БД получается обычная связь M:N, и граф подчинённости вместо дерева. А кого слушаться -
это уже организационная проблема и к БД отношения не имеет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Хранение орг. структуры и несколько руководителей подразделения
    #39362110
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovCane Cat FisherПодчинить сразу всем - бардак и бесхозяйственность. А если они противоречащие указания
дадут, кого слушаться? Не говоря уже о том, что в БД вместо иерархии подчиненности лапша
какая-то получается.
В БД получается обычная связь M:N, и граф подчинённости вместо дерева. А кого слушаться -
это уже организационная проблема и к БД отношения не имеет.


Я так понял, что ТС именно в БД хочет получить актуальную картину "кого слушаться".

Для наглядности, увеличим количество N: представим, что "администратор зала" - это нечто вроде дежурства, на которое в порядке живой очереди ходят все менеджеры конторы? Что делать? Подчинять всех всем?

Посменная работа на определенном посту наглядно сделана у военных. Есть полсотни офицеров в разных званиях, от лейтенанта до полковника. Они работают каждый на своей должности - командир взвода, начальник штаба, зам. по вооружению. И, кроме этого, они по очереди на сутки заступают на пост "Дежурный по части".

С другой стороны, в подразделении 12 сержантов, которые по очереди на сутки заступают на пост "Дежурный по подразделению". И, заступив, смотрят на стенд над тумбочкой - а там написано: "Обязанности: ....Дежурный по подразделению подчиняется дежурному по части.".

Все понятно и однозначно.

А в вашей модели это, видимо, выразится всеобщим комбинаторным графом подчиненности, а кого слушаться, пусть сами решают? :)
...
Рейтинг: 0 / 0
Хранение орг. структуры и несколько руководителей подразделения
    #39362111
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TAIPHOON,

Все (а может и не все) понимают, что одновременно есть селедку, огурцы и пить молоко - чревато, но редко кто догадывается, что делать это по этапно с разрывом хотя бы в пол часа - абсолютно без последствий...

Cane Cat FisherНужно разделить понятия "штатная единица" и "человек". и не только эти понятия...
Если хотите быстрое решение, то купите 1С зраплата и кадры, там это все уже сделано за вас, нужно просто вбить информацию и потом её корректировать...
Если хотите самостоятельно, то можно пойти по такому пути:
1. Делаем, заполняем и забываем про таблицу (да хрен с ним - пусть называется "штатка"):
- код (ид)
- должность
- количество
Всё... штатка меняется редко, только при орг-штатных мероприятиях (именно в тех конторах, где этот вопрос вообще поднимается как таковой. Я не имею ввиду ИП и ООО на 5 человек) - заполнили и забыли.
Единственное, "штатку" можно прикрепить к классификатору "Подразделения", тогда структура штатки такая:
- код (ид)
- код подразделения.
- должность
- количество
2. Делаем таблицу , ну не "человек", а как обычно - "Сотрудники".
- код (ид)
- код из штатки
- дата назначения
- номер приказа
- дата увольнения
- номер приказа
- статус (тут/не тут) - опционально
- ФИО
- ШМИО
- шмио...
- Фото
Вот эта таблица корректируется не редко и не часто, а строго в соответствии с приказами о приеме на работу и увольнении с работы.
Всё... в интерфейсе должно быть видно, что если по штатке 2 администратора и не уволенных тоже 2, то в сотрудники третьего администратора уже добавить нельзя - нужно сначала менять штатку...
- штату распечатать не проблема
- список сотрудников тоже, в него должны попасть только не уволенные...
- можно распечатать гибрид штатка + сотрудники, тогда будут видны штатка и сотрудники и вакансии.
На этом хранение орг структуры предприятия заканчивается (в грубом приближении)...
Ну а если нужно дальнейшее развитие событий типа чья задница и во сколько пересекла КПП туда и обратно, то нужно делать дополнительно таблицу типа "график работы", куда включаются сотрудники и т.д. и т.п. и уже отслеживать эти графики...
Ну естественно всё, что выше сказано, приведено на пальцах и чисто ради понимания сути...
...
Рейтинг: 0 / 0
Хранение орг. структуры и несколько руководителей подразделения
    #39362116
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На счет кто кому подчиняется... когда сотрудник расписывается за свои функциональные обязанности там уже прописано кто по штатке его прямые и непосредственные начальники и фамильярничать тут имхо ни к чему...
...
Рейтинг: 0 / 0
Хранение орг. структуры и несколько руководителей подразделения
    #39363199
TAIPHOON
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cane Cat FisherЯ так понял, что ТС именно в БД хочет получить актуальную картину "кого слушаться".

Не слушаться, а иметь доступ к документам. Это немного другое :).
vmagЕсли хотите быстрое решение, то купите 1С зраплата и кадры, там это все уже сделано за вас, нужно просто вбить информацию и потом её корректировать...

Позвольте не согласиться. В стандартной 1С нет нескольких сотрудников на одном уровне руководства в иерархии.
По таблицам получается:
Физлица:
Код: sql
1.
2.
3.
4.
5.
6.
CREATE TABLE Person
(
    PersonID int NOT NULL,
    FIO    varchar(50) NOT NULL,
    ...
)


Сотрудники:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE TABLE employee
(
    EmployeeID int NOT NULL,
    OrganizationUnit int NOT NULL,
    Person int NOT NULL,
    IsActive, --Для отключения декретчиков
    ...
)


Структура компании
[src]CREATE TABLE OrganizationStructure
(
OrganizationUnitID int NOT NULL,
OrganizationUnitName varchar(50),
ParentID int,
CountEmployee int,
...
)
И регистрация приказов:
[src]CREATE TABLE PersonnelOrders
(
PersonnelOrdersID int NOT NULL,
OrganizationUnit int NOT NULL,
Persone int NOT NULL,
DateOrder datetime,
TypeOrder int, --Принят, уволен, в/из декрет(а)
...
)
В результате, при построении прав, по сотруднику получаем его место в иерархии, раскручиваем иерархию и получаем список прав.
В хранении привязок к OU получается небольшая денормализация БД, но в таблице сотрудников всегда есть актуальная информация, которая перестраивается при добавлении/изменении строки в таблице приказов.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение орг. структуры и несколько руководителей подразделения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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