|
Первое проектирование БД. Концептуальная модель
|
|||
---|---|---|---|
#18+
Уважаемые форумчане. Оцените модель отдела кадров, что необходимо исправить. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2018, 15:22 |
|
Первое проектирование БД. Концептуальная модель
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2018, 15:43 |
|
Первое проектирование БД. Концептуальная модель
|
|||
---|---|---|---|
#18+
Не нужно смешивать русские и английские названия (СПЕЦИАЛЬНОСТИ). Либо / либо и лучше английские. Мне кажется, что карьеру сотрудника лучше оформить в таком виде: 1. Сотрудник. 2. Подразделение. 3. Должность. 4. Карьера: EMPLOYEE_ID / Идентификатор сотрудника DATE_FROM / Дата изменения статуса DATE_TILL / Дата окончания статуса DEPARTMENT_ID / Идентификатор подразделения VACANCY_ID / Идентификатор должности STATUS | STATUS_ID / Текст или ID статуса - основное, уволен, отпуск, декретный отпуск, больничный ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2018, 17:11 |
|
Первое проектирование БД. Концептуальная модель
|
|||
---|---|---|---|
#18+
leshqow, Может быть примерно так, дальше фантазировать по необходимости. Дополнить можно необходимыми полями. Подразделение – код, название. Специальности - это справочник. Штатное расписание - это перечень должностей для каждого подразделения. Сотрудник - имеет табельный номер (именно по нему он везде на предприятии и идентифицируется). Персонал - это конкретные люди на конкретных должностях в конкретном подразделении. Подразделение может быть, но по штату отсутствовать. Подразделение может быть и есть штат - но пока никто в нем не работает (все вакансии свободны, сущность "Персонал" для этого подразделения пустая). Подразделение может быть и есть штат, частично или полностью занят весь штат. Если полностью занят штат - прием сотрудника на эту должность в это подразделение не возможен. Мы можем изменить штатное расписание, увеличить или даже сократить его количество (что не есть правильно), сократится персонал но люди останутся и с ними надо будет что-то делать :) Если увольняется человек - мы можем его даже удалить из сущности "Сотрудник", автоматически удалятся зависимости (например, в "Персонал") и в штатном расписании появится вакансия (у нас же есть плановое число "количество"). Если мы изменим наименование специальности - это ни на что не повлияет, просто отображаться будет новое название. Если мы удалим специальность (а просто так - не есть правильно), то, изменится штатное расписание, сократится персонал. Но, люди останутся, правда, уже безработными. В общем, при проектировании БД надо брать реальный мир и просто строить модель, отвечая на вопросы реальной жизни. А дальше можно прикручивать и отпуска, и учебу и прочее. Но, надо еще учитывать, что с моделью надо будет работать, реально вносить данные и прочее. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2018, 07:49 |
|
Первое проектирование БД. Концептуальная модель
|
|||
---|---|---|---|
#18+
leshqow, Не думали сделать более "гибкую" структуру? "Личность" ID_Person Surname, Firstname, Patronymic "Тип Контакта" ID_Type_Contact Name_Type_Contact Например 1. Skype-логин 2. E-Mail 3. Мобильный телефон 4. Домашний телефон 5. ICQ "Контакт Личности" ID_Person ID_Type_Contact Value_Contact ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2018, 08:12 |
|
Первое проектирование БД. Концептуальная модель
|
|||
---|---|---|---|
#18+
Сем.Положение, Зарплата, Подразделение, тлф. и пр. - реквизиты, зависящие от времени. Поэтому хранить их текущее значение в карточке Сотрудника - бред. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2018, 09:21 |
|
Первое проектирование БД. Концептуальная модель
|
|||
---|---|---|---|
#18+
"Зарплата" это что? Знаю "оклад", "тариф", "ставка". А "зарплата" это совсем другое. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2018, 10:11 |
|
Первое проектирование БД. Концептуальная модель
|
|||
---|---|---|---|
#18+
982183"Зарплата" это что? Заработная плата - это термин, обозначающий обманутые ожидания. Не придирайтесь к словам. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2018, 11:30 |
|
Первое проектирование БД. Концептуальная модель
|
|||
---|---|---|---|
#18+
leshqowОцените модель отдела кадров, что необходимо исправить. 1. Убрать всё что так хочется "учесть", т.е. оставить только то, что относится непосредственно к учету кадров. А это не много, по сути - выше, без дополнительных атрибутов уже дал (один из вариантов) 2. После сформирования "ядра", можно перейти к моделированию процессов, т.е. учета рабочего времени ("Учет работы") 3. "Учет и Планирование отпусков" - разделить на "Учет отпусков" и "Планирование отпусков" Планирование отпусков — это компетенция подразделения (отдела) А вот учитывать, когда сотрудник ходил в отпуск/болел, сколько по времени - это у сотрудника и коррелирует с учетом рабочего времени. 4. Все дополнительные атрибуты человека, телефоны, адреса, пароли и явки - должны быть выделены в отдельные сущности идти от сущности "Сотрудник" и по сути не являются обязательными. 5. После этого, уже можно дополнить "плюшками" - учитывать интересы и прочее. В общем, начать с малого (и, мало не будет) - чисто кадровый учет, без лишнего. Например, если нам понадобиться изменить название специальности, в вашей схеме – потребуется обновление всей таблицы «Специальности», т.к. у разных отделов может быть одна и та-же специальность. С другой стороны, а кто мешает для отдела «А» добавить специальность «бухгалтер» а для отдела «Б» «бугалтер» для отдела «С» «бюстгальтер» ? В этом случае, мы даже обновить не сможем – надо будет перебирать все записи в ручную. Следовательно, «специальности» - это отдельная сущность, фактически справочник. Который, к тому же, действительно является справочником в РФ, имеет свои коды и требует иногда актуализации. Руслан ДамировичЗаработная плата - это термин, обозначающий обманутые ожидания. Не придирайтесь к словам. Мы же говорим о ИС а не лавочке у подъезда :) Есть тарифные ставки, есть должностной оклад и прочая бухгалтерская лабуда которая рассчитывается и это отдельная ИС. Прикручивать её к кадрам - это как 27-е колесо в двухколёсному велику :) Понятно, что автор учится. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2018, 12:54 |
|
Первое проектирование БД. Концептуальная модель
|
|||
---|---|---|---|
#18+
stells2Специальности - это справочник В PowerDesigner тип данных "Directory" не нашел, создал сам Other -> Directory.Ну тогда и подразделения тоже можно сделать справочником ? Я вам не Димон.Не думали сделать более "гибкую" структуру? Необходимо охватить по максимуму для курсового проекта. Если делать очень гибко можно закопаться в отношениях (таблицах). L_argo Сем.Положение, Зарплата, Подразделение, тлф. и пр. - реквизиты, зависящие от времени. Поэтому хранить их текущее значение в карточке Сотрудника - бред Почему? stells21. Убрать всё что так хочется "учесть", т.е. оставить только то, что относится непосредственно к учету кадров. А это не много, по сути - выше, без дополнительных атрибутов уже дал (один из вариантов) Да я понимаю, а как же принцип декомпозиции ? Максимально детализировать все. Да и у постанова у преподавателя такая в отношении курсового проекта, не менее 8 отношений (таблиц) и не менее 3 атрибутов в них, вот и приходиться высасывать из пальца. stells2 "Учет и Планирование отпусков" - разделить на "Учет отпусков" и "Планирование отпусков" Добавил. Всем большое спасибо ! Как насчет 1NF, 2NF,3NF. В моей схеме 3NF проглядывается? stells2 4. Все дополнительные атрибуты человека, телефоны, адреса, пароли и явки - должны быть выделены в отдельные сущности идти от сущности "Сотрудник" и по сути не являются обязательными. Отдельные таблицы с телефонами, адресами и т.п. ? Не слишком декомпозированно ? stells2Следовательно, «специальности» - это отдельная сущность, фактически справочник. Сделал специальности справочником. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.05.2018, 23:23 |
|
Первое проектирование БД. Концептуальная модель
|
|||
---|---|---|---|
#18+
leshqow, leshqowВ PowerDesigner тип данных "Directory" не нашел, создал сам Other -> Directory. Не понял, о чем это. leshqowНу тогда и подразделения тоже можно сделать справочником ? Нет, это не справочник. Если хотите, можете добавить справочник названий подразделений. Что бы при вводе не было ошибок. Но, для вашей задачи это избыточно, и лишние вопросы. По остальному: Есть подразделение (отделы), в котором могут работать люди, а могут и не работать (нет пока их там, подразделение новое). Но, у подразделения есть руководитель и реквизиты (как минимум, телефон) и штатное расписание, т.е. перечень должностей и количество единиц по каждой должности (3 бухгалтера, 2 экономиста и т.д.). Сами должности - это справочные данные ( ОКПДТР 2018 ). Значит, создав отдел, мы можем наполнить его штатными единицами на основании справочника должностей. С подразделением всё. Сотрудник: Идентификатором любого сотрудника является его табельный номер, как правило, это целое число, это первичный ключ. Сюда же включаются все необходимы данные, которые могут быть только в единственном числе (ФИО, адрес прописки, например) и, по необходимости и не обязательным – фактическое место проживания и прочее. Сведения об образовании – это важно. Уровень образования – это отдельное поле (высшее, церковно-приходское и прочее), по этому атрибуту вполне вероятно будут фильтроваться запросы. Описание самого образования (где, когда, направление и прочее), можно оставить в таблице «Сотрудники» - это для первичного образования (первичным считается то, которое дает последний самый высокий уровень, т.е. для инженера это будет ВУЗ, а не школа или техникум если такой имеется). Дополнительное образование (в том числе и предыдущее, если есть необходимость его учитывать) храним в отдельной сущности, с указанием: табельный номер, даты, тип обучения и прочее. Дата приёма, должность (из справочника ОКПДТР), испытательный срок и прочее. Аналогично и с остальными атрибутами (адреса, телефоны и прочее, например, родственники и т.д.) – первичное в таблице «Сотрудник» остальное в отдельных сущностях, конечно родственников в «Сотрудники» не храним, это отдельная сущность. С человеком разобрались. Эти две сущности, «Сотрудники» и «Отделы» пока никак не связаны, но по сути, уже готовы полноценно работать – это уже базы данных. Теперь, привяжем «Сотрудники» к «Подразделения» = «Персонал» Человек, который начал работать где-то, уже является персоналом. Тут просто привязываем табельный номер и идентификатор штатного расписания. Таким образом, у нас может человек и совмещать должности. А контроль за соответствием количества вакансий и набранных на эти вакансии сотрудников осуществляется программно, т.к. это уже выходит за рамки нормализации. Далее, если надо учитывать рабочее время, то учет ведется уже для персонала. Специально описал повествовательно, что бы был понятен подход. Очень важно строить модель по тому что хорошо понятно, фантазировать тут не стоит. Нормализация – не самоцель, но, по сути, она решает вопросы избыточности, целостности и не противоречивости, просто описана математически. Я думаю, из того что наговорил, у вас уже с лихвой перекроит требования преподавателя :) Лучше сделать меньше – но качественно, чем много и ни о чем, прежде всего для вас, если Вам это интересно. А коль проект учебный, то конечно что-то можно упростить, где-то нафанатазировать. Но не придумывать сказки, а из идеального мира. Выше я дал возможный вариант, дополнить его атрибутами не сложно. Варианты могут быть разные, в зависимости от целевой задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2018, 07:01 |
|
Первое проектирование БД. Концептуальная модель
|
|||
---|---|---|---|
#18+
leshqowСделал специальности справочником. Где? У вас это не справочник. Справочник на моей схеме выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2018, 07:12 |
|
Первое проектирование БД. Концептуальная модель
|
|||
---|---|---|---|
#18+
образование - у сотрудника может быть несколько вышек. а ещё может быть ученое звание ( степень) . и тогда в вашу таблицу оно не попадает. хотя формально относиться к образованию )) и да - зарплата, это атрибут штатного расписания, ибо один сотрудник может работать на двух позициях одновременно. и да2 - отдел кадров не оперирует понятием "зарплата" - там есть понятие "ставка" ( месячная, часовая .. и т.д) плюс для совместителей как правило коэффициент к ставке ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2018, 15:51 |
|
|
start [/forum/topic.php?fid=32&msg=39641483&tid=1540045]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
182ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 241ms |
total: | 520ms |
0 / 0 |