Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > проектирование базы


Автор: studentigor 13.4.2012, 09:28
Всем привет.

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

Нужен список сотрудников - это будет одна таблица, с описание данных о сотруднике.
И дальше, у любого сотрудника могут быть несколько подчиненных, и так же, у любого сотрудника может быть несколько начальников.

Я бы для этого добавил ещё одну таблицу с полями id, director, junior.
 в director попадал бы id сотрудника, кто является начальником над id, который записан в  junior.


Может комуто это покажется смешно, я просто не принимал участий в больших проектах, и не сильно знаю как правильно планировать базу,
 для проектов, который будут постоянно разростатся.
Подскажите, как правильно решить эту задачу. Спасибо

Автор: Aliance 13.4.2012, 10:37
Как по логике у подчинённого может быть несколько равноправных начальников?
По идеи структура фирмы должна представлять собой дерево.

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

Автор: studentigor 14.4.2012, 11:00
Цитата

Как по логике у подчинённого может быть несколько равноправных начальников?


Вы имеете в виду, такую ситуацию:

У работника 3го уровня, 2 начальника 2-го уровня?
Да, такая ситуация тоже может быть.

Судя по вашим словам - мой вариант правельный?

Автор: Aliance 16.4.2012, 09:23
Цитата(studentigor @  14.4.2012,  12:00 Найти цитируемый пост)
Судя по вашим словам - мой вариант правельный? 

В общем-то да, получается связующая табличка, организующая связь многие-ко-многим (many-to-many).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)