Что наследование в UML делает с вашим ERD? - PullRequest
2 голосов
/ 23 июля 2010

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

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

Я не знаю, как обращаться с наследованием, я вижу, что ассоциации выполняются с PK и FK, но как насчет подклассов?

Есть ли какая-нибудь статья, которая касается этого, или есть кто-то, кто может мне это объяснить?

Заранее спасибо,

Ответы [ 3 ]

3 голосов
/ 24 июля 2010

У вас есть три альтернативы для преобразования иерархий классов в реляционные таблицы: - Создать только таблицу для суперкласса (все атрибуты и ассоциации подклассов перемещаются в таблицу, соответствующую суперклассу, с возможностью принятия значения NULL) - Создатьтолько таблицы для подклассов: все атрибуты и ассоциации суперкласса повторяются в каждом подклассе - создавайте таблицы как для суперкласса, так и для каждого из подклассов.В этом случае PK подклассов является одной и той же таблицей FK для суперкласса (это гарантирует, что все идентификаторы в таблице подклассов соответствуют существующему идентификатору в таблице суперкласса. Объединение обеих таблиц позволяет восстановить полную информациюэлемента)

Лучшая стратегия зависит от проблемы (например, количество атрибутов в каждом классе, количество уровней в иерархии, является ли иерархия непересекающейся или нет, ...)

Если вы хотите увидеть некоторые примеры, вы можете загрузить свою иерархию в онлайн-сервис UMLtoDB http://modeling -languages.com / content / uml2db-full-генерация кода-sql-scripts-database

1 голос
/ 23 июля 2010

Отбросьте всю эту чепуху UML - будьте проще. Это просто равносильно дублированию без выгоды. Публикует ли Microsoft или Sun UML для dOT NET или Java ... Для нечетного примера большинство этих платформ нигде не имеют официального UML.

0 голосов
/ 23 июля 2010

Обычно вы проектируете свою модель данных (таблицы базы данных / PK / FK и т. Д.) Параллельно, когда разрабатываете свою фактическую диаграмму классов.После определения всех классов cadidate и зависимостей каждого из этих классов вы, вероятно, перейдете к диаграмме последовательности проектирования.К этому времени ваша модель данных должна быть завершена.

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

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