Стрктура БД
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Стрктура БД Expand / Collapse
Автор
Сообщение
10.10.2005 16:29
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 10.10.2005 16:12
Сообщ.: 43, Visits: 474
Доброго времени суток!

Может быть кто-нибудь сталкивался с похожей проблемой и сможет дать совет. Сам как-то не могу придумать структуры БД. Общая идея БД состоит в следующем:

1. Существует набор компаний.
2. Существует набор подразделений - подразделения имеют уникальные ID.
3. Набор под-подразделений.
4. Набор сотрудников.

Есть Подчиненность подразделений - они входят в компании и им, в свою очередь подчиняются какие-то под-подразделения (возможны разне количества). Например: Компания А1 состоит из двух подразделений B1 (состоящий из подотделов C1 и C2) и B2 (состоящий из отделов C3, C4 и C5). Отделы и подотделы могут передаваться в подчинение от одного родителя другому.
В эту же схему включены сотрудники - руководители и замы компаний, отделов и подотделов. Тоже могут со временем переходить из одного отдела в другой как "вбок" так и "вверх" и "вниз".
Ну и всё это завязяно на время.
Задача нарисовать базу так чтобы в любой момент по любому периоду времени можно было получить отчет - кто из сотрудников в этот конкретный момент чем руководил, в какую компанию в этот период был включен этот конкретный отдел и т.д.

Может кто-то что-то похожее делал уже? Самый простой вариант кажется - сделать кучу таблиц по каждому отделу и каждому сотруднику с включенной хронологией, но таких таблиц потребуется очень уж много (порядок сотен). а как хранить все связи с учетом периодов времени - придумать не могу :(
Сообщ. #882310
10.10.2005 17:52
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 29.09.2007 22:12
Сообщ.: 343, Visits: 3 388
Сколько платишь за проетирование ТВОЕЙ БД ? Думаю, за $500 можно договориться.. Я не жадный
Сообщ. #882317
11.10.2005 18:46
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 10.10.2005 16:12
Сообщ.: 43, Visits: 474
А я небогатый :) Так что мне достаточно общей идеи как это реализовать. Создать таблицу перемещений что-ли или... И из нее черпать данные на каждый момент времени...
Сообщ. #882409
27.10.2005 12:44
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 01.09.2007 21:18
Сообщ.: 407, Visits: 4 434
Я думаю решение не зависит от структуры базы данных.
Зависит от того какие требования выставляются к обработке архивов.
Решения бывают разные. К примеру:

1. Для каждой таблицы - архивная таблица
2. Для каждого архивного периода - своя база.
3. В каждой таблице заводятся поля указывающие на период и на статус троки (удалено, изменено, добавлено)
4. При любом изменении ннформации в базе пишутся соответствующие логи.

При вариантах 1-3 информацию можно обрабатывать обычными запросами.
Вариант 3 будет медленно работать при большом количестве архивных записей.
Сообщ. #883501
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 11:05