#database #database-design #many-to-many #uml
#База данных #база данных-дизайн #многие ко многим #uml
Вопрос:
У меня проблема с пониманием отношений «многие ко многим» в одной таблице в UML.
Пользователь в моей базе данных имеет разрешение, в котором указано, кто он (преподаватель или студент).
Моя проблема в том, что у меня есть преподаватель, у которого может быть 0 или более учеников, и студент, у которого может быть 0 или более преподавателей.
Моя идея заключается в следующем:
Я не уверен, правильно ли это. Есть ли лучшее решение?
Спасибо всем за вашу помощь 🙂
Комментарии:
1. Вероятно, вам просто нужно добавить ограничения для этой цели.
Ответ №1:
Это зависит от того, чего вы хотите достичь.
Если вы пытаетесь создать документацию вашей базы данных с использованием UML, то ваша модель не будет отличаться от того, что вы сделали бы, используя, например, нотацию crowfoot. В таком случае ваша диаграмма верна.
Чтобы подчеркнуть взаимосвязь, вы можете использовать класс ассоциации, связывающий User с User. Это приносит ценность, только если ваш класс ассоциации приносит какое-либо дополнительное значение (атрибуты), в противном случае вы можете использовать простую ассоциацию.
Если вы фокусируетесь на отображении фактических зависимостей, а не того, что у вас есть в базе данных, вы можете рассмотреть возможность использования пользователя в качестве родителя для двух классов «Учитель» и «Ученик», а затем изобразить вашу связь как «вкл» между учителем и учеником, а не между пользователями.
Ответ №2:
вам действительно нужны 2 отношения / многие ко многим?
для меня существует только одно отношение к себе / один ко многим
User --
^ |
*| |
----/
- если пользователь является преподавателем, отношение обозначает студентов
- если пользователь является студентом, отношение обозначает преподавателей