Sync
Новичок
хранение графа в БД
Интересует оптимальная структура таблиц для хранение графа в базе данных.
Задача состоит в построении отношений между сотрудниками фирмы.
Например, Иванов (И) является начальником для Петрова (П) и Сидорова (С), Вася (В) - заместитель И, то есть также может выступать начальником П и С. В свою очередь П может иметь своих подчиненных, которые могут подчиняться И и В, а могут и нет. То есть насколько я понимаю все сводиться в организации подобного рода связей. (подчиняется, коллега, заместитель, просто сотрудник и тд.). При изображении всего этого на бумаге я вижу граф, можете поправить если не прав.
Что значит оптимальная структура? Чтобы с минимальными затратами находить подобного рода штуки:
- нахождение цепочки от сотрудника до последнего его подчиненного
- аналогично от сотрудника до самого высшего начальника над ним
- нахождение всех подчиненных первого (второго, ...) уровня (то есть прямых, посредственных,... подчиненных)
- аналогично всех стоящих выше.
и т.д.
Интересует оптимальная структура таблиц для хранение графа в базе данных.
Задача состоит в построении отношений между сотрудниками фирмы.
Например, Иванов (И) является начальником для Петрова (П) и Сидорова (С), Вася (В) - заместитель И, то есть также может выступать начальником П и С. В свою очередь П может иметь своих подчиненных, которые могут подчиняться И и В, а могут и нет. То есть насколько я понимаю все сводиться в организации подобного рода связей. (подчиняется, коллега, заместитель, просто сотрудник и тд.). При изображении всего этого на бумаге я вижу граф, можете поправить если не прав.
Что значит оптимальная структура? Чтобы с минимальными затратами находить подобного рода штуки:
- нахождение цепочки от сотрудника до последнего его подчиненного
- аналогично от сотрудника до самого высшего начальника над ним
- нахождение всех подчиненных первого (второго, ...) уровня (то есть прямых, посредственных,... подчиненных)
- аналогично всех стоящих выше.
и т.д.