Модель класса UML как моделировать отношения многие ко многим

Я прочитал несколько учебников о том, что должна содержать модель UML, а что нет. Как разработчик я всегда думаю в терминах реляционной модели данных, где вы никогда не могли бы иметь много-много отношений между таблицами. Теперь с моделью класса UML я прочитал, что если они не предоставляют добавленную стоимость, вы можете просто пропустить linktables.

однако я также прочитал учебник, где приведены примеры использования данных внутри таблиц и настоятельно предлагал представить каждый класс как простая таблица при моделировании модели класса.

Я в замешательстве,что теперь?!

2 ответов


моделируйте его как отношение M:N. Так же, как в модели отношений будет связать класс (или ссылка класс) какого-то кода. Нет необходимости помещать это на диаграмму, если у нее нет атрибутов поверх атрибутов соединения (так же, как вы обычно опускаете сущность соединения из ERD, если у нее нет атрибутов, которые не были внешними ключами в связанных сущностях). Класс link обычно рисуется как класс, связанный с отношением пунктиром линия.

Регистрация присоединиться сущность является хорошим примером этого в UML 2 диаграммы классов.


"реляционная таблица ссылок" -это метод реализации отношений "многие ко многим".

связь существует независимо от того, как она реализована.

в объектной модели у вас есть много вариантов реализации "многие ко многим", которые могут (или не могут) включать дополнительную постоянную таблицу. Это можно сделать разными способами.

точки УМЛ уметь описывать важно особенности модели действительно быть.

вы можете и описание. Это отдельные диаграммы с разными целями. Вы можете легко показать реляционную реализацию с помощью таблицы ссылок. Вы также можете показать необходимую модель без таблицы ссылок.

вот основные отношения

существенно http://i28.tinypic.com/x3tnhk.jpg

вот реализация отношения

реализации http://i32.tinypic.com/mmws2h.jpg

оба являются допустимыми UML. Реальный вопрос: "что вам нужно показать другим людям?"Существенная истина или одно конкретное осуществление?