|
|
|
Хранение орг. структуры и несколько руководителей подразделения
|
|||
|---|---|---|---|
|
#18+
Сейчас планирую структуру БД, а именно участок хранения орг. структуры компании. Возникает несколько вопросов: 1. Имеет ли смысл использовать тип HierarchyID? Ведь у него много недостатков, таких, как отсутствие контроля целостности и перестройка всего куста, при его переносе. 2. В некоторых случаях есть два руководителя подразделения, которые работают посменно (например администраторы торгового зала). Как их хранить? Ведь у их подчинённых нет единого родителя... Как я вижу эту часть структуры БД: Сотрудники: Код: sql 1. 2. 3. 4. 5. 6. Сама структура: Код: sql 1. 2. 3. 4. 5. 6. 7. И история изменений. Что то типа: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 12:17 |
|
||
|
Хранение орг. структуры и несколько руководителей подразделения
|
|||
|---|---|---|---|
|
#18+
И ещё вопрос: если подразделение переименовывается и/или переподчиняется, то мы переносим ветку, или помечаем, как старую (удалённую), и создаём новую? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 12:19 |
|
||
|
Хранение орг. структуры и несколько руководителей подразделения
|
|||
|---|---|---|---|
|
#18+
TAIPHOON В некоторых случаях есть два руководителя подразделения, которые работают посменно (например администраторы торгового зала) Нужно разделить понятия "штатная единица" и "человек". Штатная единица одна - "администратор торгового зала", ей подчиняются штатные единицы-сотрудники. А людей к ней относятся двое. Могут, кстати, вообще ноль, если она вакантная. Разделение штатных единиц и людей полезно еще тем, что некоторые люди могут работать сразу на нескольких должностях (и, соответственно, подчиняться сразу нескольким руководителям). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 14:47 |
|
||
|
Хранение орг. структуры и несколько руководителей подразделения
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherНужно разделить понятия "штатная единица" и "человек". Так у меня как бы и разделено. Или имеется ввиду что то ещё? Cane Cat FisherШтатная единица одна - "администратор торгового зала", ей подчиняются штатные единицы-сотрудники. А людей к ней относятся двое. Могут, кстати, вообще ноль, если она вакантная. Разделение штатных единиц и людей полезно еще тем, что некоторые люди могут работать сразу на нескольких должностях (и, соответственно, подчиняться сразу нескольким руководителям). Это понятно, но как это сделать с точки зрения структуры. Где хранить эти 0-2 записи о назначенных, а так же как отслеживать, что бы было не более 2? В особенности, что бы не делать ещё кучу лишних join при определении прав ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 15:52 |
|
||
|
Хранение орг. структуры и несколько руководителей подразделения
|
|||
|---|---|---|---|
|
#18+
TAIPHOONЭто понятно, но как это сделать с точки зрения структуры. Где хранить эти 0-2 записи о назначенных, а так же как отслеживать, что бы было не более 2? В особенности, что бы не делать ещё кучу лишних join при определении прав Таблица штатных единиц, таблица сотрудников. В таблице штатных единиц - ссылка на сотрудника, занимающего данный пост в данный момент. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 16:20 |
|
||
|
Хранение орг. структуры и несколько руководителей подразделения
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovВ таблице штатных единиц - ссылка на сотрудника, занимающего данный пост в данный момент. Вопрос был про администраторов торгового зала, работающих посменно. Менять ссылку в штатной единице при каждом заступлении на смену очередного сотрудника? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 16:24 |
|
||
|
Хранение орг. структуры и несколько руководителей подразделения
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherМенять ссылку в штатной единице при каждом заступлении на смену очередного сотрудника? Разве в таком зале не три (или больше) отдельных штатных единицы администратора?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 16:32 |
|
||
|
Хранение орг. структуры и несколько руководителей подразделения
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovРазве в таком зале не три (или больше) отдельных штатных единицы администратора?.. Обычно два, но как оно будет потом - хз, поэтому хардкодить двоих тоже не вариант. Главное, что больше одного, а, следовательно, просто указать ссылку на EmpID не получится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 16:36 |
|
||
|
Хранение орг. структуры и несколько руководителей подразделения
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovCane Cat FisherМенять ссылку в штатной единице при каждом заступлении на смену очередного сотрудника? Разве в таком зале не три (или больше) отдельных штатных единицы администратора?.. Мне представилось, что администратор как штатная единица один, просто, скажем, до обеда это Иванов, а после обеда - Петров. Оба на пол-ставки, потому как студенты :) Можно, конечно, выразить это двумя штатными единицами - "утренний администратор" и "послеобеденный администратор". Но тогда еще веселее - придется дважды в день переподчинять им кассиров и прочий персонал зала - ТС ведь актуальную иерархию хочет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 16:39 |
|
||
|
Хранение орг. структуры и несколько руководителей подразделения
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherDimitry Sibiryakovпропущено... Разве в таком зале не три (или больше) отдельных штатных единицы администратора?.. Мне представилось, что администратор как штатная единица один, просто, скажем, до обеда это Иванов, а после обеда - Петров. Оба на пол-ставки, потому как студенты :) Можно, конечно, выразить это двумя штатными единицами - "утренний администратор" и "послеобеденный администратор". Но тогда еще веселее - придется дважды в день переподчинять им кассиров и прочий персонал зала - ТС ведь актуальную иерархию хочет. А если Администратор 1 + Администратор 2 + график работы ШЕ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 16:44 |
|
||
|
Хранение орг. структуры и несколько руководителей подразделения
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherМожно, конечно, выразить это двумя штатными единицами - "утренний администратор" и "послеобеденный администратор". Но тогда еще веселее - придется дважды в день переподчинять им кассиров и прочий персонал зала - ТС ведь актуальную иерархию хочет. А подчинить их сразу всем администраторам - не вариант? Или в 12:01 кассир превращается в тыкву может спокойно послать администратора, которому подчинялся ещё минуту назад?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 17:01 |
|
||
|
Хранение орг. структуры и несколько руководителей подразделения
|
|||
|---|---|---|---|
|
#18+
buvenА если Администратор 1 + Администратор 2 + график работы ШЕ? У ШЕ нет графика работы. Он есть у сотрудников, которые заполняют эти единицы. По-моему так. То есть Иванов и Петров - администраторы зала. Иванов работает до обеда в чётные недели, а Петров - после обеда. В нечётные недели - наоборот. Кассиры любому из них подчиняются в любом случае и в любое время. Нет, конечно, есть вариант, что когда Иванов при исполнении, Петров - пустое место, но это явно не про магазин. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 17:06 |
|
||
|
Хранение орг. структуры и несколько руководителей подразделения
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovCane Cat FisherМожно, конечно, выразить это двумя штатными единицами - "утренний администратор" и "послеобеденный администратор". Но тогда еще веселее - придется дважды в день переподчинять им кассиров и прочий персонал зала - ТС ведь актуальную иерархию хочет. А подчинить их сразу всем администраторам - не вариант? Или в 12:01 кассир превращается в тыкву может спокойно послать администратора, которому подчинялся ещё минуту назад?.. Подчинить сразу всем - бардак и бесхозяйственность. А если они противоречащие указания дадут, кого слушаться? Не говоря уже о том, что в БД вместо иерархии подчиненности лапша какая-то получается. И да, если Петров явился на работу в неурочное время и начал командовать, то, разумеется, слушать его никто не будет. Наглядный пример - вне его расписания по его карточке кодовый замок не пустит его в служебное помещение, и правильно сделает. На практике, пожалуй, лучше ориентироваться не на время 12:01, а на фактическую передачу смены другому администратору - кнопку "пост сдал, пост принял", но суть от этого не меняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 18:39 |
|
||
|
Хранение орг. структуры и несколько руководителей подразделения
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherПодчинить сразу всем - бардак и бесхозяйственность. А если они противоречащие указания дадут, кого слушаться? Не говоря уже о том, что в БД вместо иерархии подчиненности лапша какая-то получается. В БД получается обычная связь M:N, и граф подчинённости вместо дерева. А кого слушаться - это уже организационная проблема и к БД отношения не имеет. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 18:57 |
|
||
|
Хранение орг. структуры и несколько руководителей подразделения
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovCane Cat FisherПодчинить сразу всем - бардак и бесхозяйственность. А если они противоречащие указания дадут, кого слушаться? Не говоря уже о том, что в БД вместо иерархии подчиненности лапша какая-то получается. В БД получается обычная связь M:N, и граф подчинённости вместо дерева. А кого слушаться - это уже организационная проблема и к БД отношения не имеет. Я так понял, что ТС именно в БД хочет получить актуальную картину "кого слушаться". Для наглядности, увеличим количество N: представим, что "администратор зала" - это нечто вроде дежурства, на которое в порядке живой очереди ходят все менеджеры конторы? Что делать? Подчинять всех всем? Посменная работа на определенном посту наглядно сделана у военных. Есть полсотни офицеров в разных званиях, от лейтенанта до полковника. Они работают каждый на своей должности - командир взвода, начальник штаба, зам. по вооружению. И, кроме этого, они по очереди на сутки заступают на пост "Дежурный по части". С другой стороны, в подразделении 12 сержантов, которые по очереди на сутки заступают на пост "Дежурный по подразделению". И, заступив, смотрят на стенд над тумбочкой - а там написано: "Обязанности: ....Дежурный по подразделению подчиняется дежурному по части.". Все понятно и однозначно. А в вашей модели это, видимо, выразится всеобщим комбинаторным графом подчиненности, а кого слушаться, пусть сами решают? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 19:35 |
|
||
|
Хранение орг. структуры и несколько руководителей подразделения
|
|||
|---|---|---|---|
|
#18+
TAIPHOON, Все (а может и не все) понимают, что одновременно есть селедку, огурцы и пить молоко - чревато, но редко кто догадывается, что делать это по этапно с разрывом хотя бы в пол часа - абсолютно без последствий... Cane Cat FisherНужно разделить понятия "штатная единица" и "человек". и не только эти понятия... Если хотите быстрое решение, то купите 1С зраплата и кадры, там это все уже сделано за вас, нужно просто вбить информацию и потом её корректировать... Если хотите самостоятельно, то можно пойти по такому пути: 1. Делаем, заполняем и забываем про таблицу (да хрен с ним - пусть называется "штатка"): - код (ид) - должность - количество Всё... штатка меняется редко, только при орг-штатных мероприятиях (именно в тех конторах, где этот вопрос вообще поднимается как таковой. Я не имею ввиду ИП и ООО на 5 человек) - заполнили и забыли. Единственное, "штатку" можно прикрепить к классификатору "Подразделения", тогда структура штатки такая: - код (ид) - код подразделения. - должность - количество 2. Делаем таблицу , ну не "человек", а как обычно - "Сотрудники". - код (ид) - код из штатки - дата назначения - номер приказа - дата увольнения - номер приказа - статус (тут/не тут) - опционально - ФИО - ШМИО - шмио... - Фото Вот эта таблица корректируется не редко и не часто, а строго в соответствии с приказами о приеме на работу и увольнении с работы. Всё... в интерфейсе должно быть видно, что если по штатке 2 администратора и не уволенных тоже 2, то в сотрудники третьего администратора уже добавить нельзя - нужно сначала менять штатку... - штату распечатать не проблема - список сотрудников тоже, в него должны попасть только не уволенные... - можно распечатать гибрид штатка + сотрудники, тогда будут видны штатка и сотрудники и вакансии. На этом хранение орг структуры предприятия заканчивается (в грубом приближении)... Ну а если нужно дальнейшее развитие событий типа чья задница и во сколько пересекла КПП туда и обратно, то нужно делать дополнительно таблицу типа "график работы", куда включаются сотрудники и т.д. и т.п. и уже отслеживать эти графики... Ну естественно всё, что выше сказано, приведено на пальцах и чисто ради понимания сути... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 19:38 |
|
||
|
Хранение орг. структуры и несколько руководителей подразделения
|
|||
|---|---|---|---|
|
#18+
На счет кто кому подчиняется... когда сотрудник расписывается за свои функциональные обязанности там уже прописано кто по штатке его прямые и непосредственные начальники и фамильярничать тут имхо ни к чему... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 19:44 |
|
||
|
Хранение орг. структуры и несколько руководителей подразделения
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherЯ так понял, что ТС именно в БД хочет получить актуальную картину "кого слушаться". Не слушаться, а иметь доступ к документам. Это немного другое :). vmagЕсли хотите быстрое решение, то купите 1С зраплата и кадры, там это все уже сделано за вас, нужно просто вбить информацию и потом её корректировать... Позвольте не согласиться. В стандартной 1С нет нескольких сотрудников на одном уровне руководства в иерархии. По таблицам получается: Физлица: Код: sql 1. 2. 3. 4. 5. 6. Сотрудники: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Структура компании [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 получается небольшая денормализация БД, но в таблице сотрудников всегда есть актуальная информация, которая перестраивается при добавлении/изменении строки в таблице приказов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 10:39 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=13&tid=1540244]: |
0ms |
get settings: |
12ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 15ms |
| total: | 178ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...