Я набросал возможный сценарий, он упрощен, но я думаю, что он идет в правильном направлении.Важно то, что вы не слишком усложняете партнерские <-> партнерские отношения.
Держите это простым и глупым - только одна таблица для партнеров (студентов, компаний и т. Д.).Добавьте столбцы или дополнительные отношения в таблицу партнеров, чтобы указать, какой это тип партнера (бизнес? Студент? Сектор?).
Таблица отношений partnerships_partners может использоваться для более точного описания отношения, например, "участник",аудитор, спонсор и т. д. ».Это дает вам контекст, в котором партнер выступает за конкретное партнерство.Возможно несколько записей.Партнеры могут «участвовать» в нескольких партнерствах в разных контекстах, даже в рамках одного партнерства он может быть «участником и спонсором» одновременно.Столбцы joined_on
и left_on
позволяют управлять «историей» партнера в определенном партнерстве.
Таблица партнерств описывает партнерство в виде имени, даты начала, срока действия и т. Д.
Таблица проектов описывает проект, добавьте собственные столбцы для его описания.
Чтобы получить отчеты, объедините необходимые таблицы в запросе и отфильтруйте строки в соответствии с условиями отчета.
полное изображение