1 (edited by Evgeniy D 2018-02-09 06:57:14)

Topic: Помогите создать структуру БД

Добрый день!
Нужно создать структуру БД по приложенной форме (структура предприятия). А добавляемые новые пользователи далее должны в конечном итоге принадлежать одному из структурных подразделений. т.к. структура разной глубины иерархии не могу понять как такое делается. Желательно при изменении структуры предприятия - структура БД не должна меняться.

Post's attachments

Attachment icon image010.gif 16.16 kb, 200 downloads since 2018-02-09 

Re: Помогите создать структуру БД

Добрый день.
Я бы решил такую задачу таблицей:
Id, Родитель, Название отдела

Где id это индекс, Родитель это id вышестоящего отдела.

Комбобоксы в форме заполнять через скрипт.

Re: Помогите создать структуру БД

Схема структуры предприятия понятна, но непонятно, зачем её реализовывать smile Чтобы определить, кто кому подчиняется и у кого сколько подчиненных? Тогда - да, это нужно.

Что мы имеет на схеме? Иерархический список должностей, в котором некоторые должности представлены группами (названием отдела), которые не должны выбираться в качестве должности сотрудника а служат только для организации иерархической структуры. На практике это дерево расширяется на уровне отделов конкретными должностями: монтажник, штукатур, менеджер, бухгалтер и т.д. Тогда получаем структуру:

  • ID - идентификатор (поле создаётся автоматом)

  • Parent_ID - родительский элемент

  • Name - название должности или отдела

  • isGroup - признак отдела

При добавлении сотрудника ему присваивается должность, отдел назначать нельзя, но его можно определить запросом.

Визуальное программирование: блог и телеграм-канал.

Re: Помогите создать структуру БД

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

Re: Помогите создать структуру БД

Evgeniy D wrote:

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

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

Визуальное программирование: блог и телеграм-канал.