Добрый вечер!
Мне нужно создать базу данных для программы управления проектом.
Project — общее описание всех проектов,
Tasks — описание иерархической последовательности выполнения псевдо задач (групп задач) проекта,
ProjectTasks — разделение каждой псевдо задачи на модели, происходит фиксация плановых сроков и стоимости, а так же фактических сроков и стоимости,
ProjectProcedure — задания входящие в модели псевдо задач, эти задачи выпорлняются исполнителями, происходит их планирование,
PlannedProjectTasks, PlannedProjectProcedure — история планирования псевдо задач и задая соответственно.
Вопросы:
Правильно я поступая, делая в каждой таблице один уникальный индефикатор, т.е. у меня получается так, что чтобы узнать название проекта по задаче нужно будет последовательно осуществить поиск по таблицам (ProjectProcedure -> ProjectTasks->Tasks)?
не делаю многосоставной ключ из-за того что тогда не получится связать ProjectTasks с PlannedProjectTasks и ProjectProcedure с PlannedProjectProcedure, или может быть лучше отказаться этого ограничения целостности и сделать везде многосоставной ключ?
Схема данных:
http://files.rsdn.ru/72706/dbpm.JPG
Заранее спасибо!
С уважением,
Kosteles
База будет большая. Есть сомнения на счет нормальной производительности при использование такой иерархии по ключам таблиц. Чтобы достать данные из Project по данным из PlannedProjectProcedure нужно проитесь по трем промежуточным таблицам...
С уважением,
Kosteles