#database-design #erd
#проектирование базы данных #erd
Вопрос:
Я пытаюсь разработать веб-приложение для университета, который хочет отслеживать свои отраслевые партнерские отношения, и я ищу некоторые идеи для дизайна ERD. В университете существуют различные типы партнерских отношений, некоторые из них формальные, а некоторые неформальные. Эти партнерские отношения могут быть частью официальных проектов между предприятиями и академическими программами с меморандумами о взаимопонимании и соглашениями об уровне обслуживания или просто неформальными консультациями с промышленностью. В некоторых партнерствах также участвуют учащиеся, и об этом также необходимо сообщать. Некоторые ключевые отчеты включают список партнеров для конкретной академической программы, список партнеров в определенном секторе или типе бизнеса, список официальных и / или неофициальных партнерств, включая контактные данные участников отрасли и университета, и список конкретных деталей проекта, включая описание проекта, дату начала, продолжительность и характер программыучастие.
Это некоторые из идей, но я открыт для любых дальнейших предложений или комментариев. Приложение будет разработано с использованием Zend Framework с базой данных MySQL. Однако сейчас я просто ищу помощи в разработке ERD.
Ответ №1:
Я набросал возможный сценарий, он упрощен, но я думаю, что он идет в правильном направлении. Важно то, что вы не слишком усложняете отношения партнерства <-> партнеры.
Держите это простым и глупым — только одна таблица для партнеров (студентов, компаний и т. Д.). Добавьте столбцы или дополнительные отношения к таблице партнеры, чтобы указать, что это за партнер (бизнес? студент? сектор?).
Таблица отношений partnerships_partners может использоваться для более точного описания отношений, например «участник, аудитор, спонсор и т. Д.». Это дает вам контекст, в котором партнер относится к конкретному партнерству. Возможно несколько записей. Партнеры могут «участвовать» в нескольких партнерствах в нескольких контекстах, даже в рамках одного партнерства он может быть «участником и спонсором» одновременно. Столбцы joined_on
и left_on
позволяют управлять «историей» партнера в определенном партнерстве.
Таблица партнерских отношений описывает партнерство, например, имя, дату начала, дату истечения срока действия и т.д.
Таблица projects описывает проект, добавьте свои собственные столбцы для его описания.
Чтобы получить свои отчеты, объедините необходимые таблицы вместе в запросе и отфильтруйте строки в соответствии с условиями отчета.
Комментарии:
1. Извините, что так долго не отвечал, был немного занят. ERD похож на то, что я уже разработал, но без одной или двух дополнительных таблиц, большинство из которых мне пришлось добавить в ответ на некоторые дополнительные запрошенные функции (в этом проекте ползучесть функций выходит из-под контроля). В любом случае, спасибо за все усилия, которые вы вложили в свой ответ