2010-04-11 3 views
1

Я реализую небольшую базу данных (университетский проект), и перед вами стоит следующая проблема.Entity Диаграмма взаимоотношений - Состав

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

Поезд {Id, Name, Детали}

А класс

рельсовый подвижной состав

который чем обобщен в Локомотиве и FreightWagon ,

Поезд состоит из многократного рельсовый подвижной состав в определенный момент времени (в разные дни прокатки

запас будет составлять другой поезд).

я представлял поезд отношения - подвижного состава, как алмаз, заполненного (UML), но все-таки я

имеют отношения многие ко многим между двумя таблицами.

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

train_RollingStock.

но как я представляю композицию?

Могу ли я использовать заполненный алмаз? Если да, с какой стороны?

Благодаря

ответ

2

У меня есть простое правило при выборе между заполненным алмазом и прозрачным алмазом.

Если существование дочернего объекта зависит от родителя, то это заполненный алмаз. Одна рука имеет 5 пальцев. Если рука исчезает, то и пальцы.

Если существование дочернего объекта не зависит, тогда используйте прозрачный алмаз. Роллингстон все еще будет существовать, если локомотив уйдет, так что это четкое отношение к алмазу.

НО В этом случае вы можете моделировать историю, в которой подвижной состав был прикреплен к тому поезду и когда.

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

  • Поезд имеет ряд RollingStockRelatinships (заполняется алмаз инкапсуляция)
  • RollingStockRelationship имеет один подвижного состава (прозрачный алмаз инкапсуляция)

Или вы могли бы иметь:

  • Подвижной состав имеет ряд RollingStockRelationships (заполненная алмазная инкапсуляция)
  • Rolling Stock StockRelationship имеет один рельсовый подвижной состав (прозрачный алмаз инкапсуляция)

Или вы могли бы иметь:

  • RollingStockRelationship указывает на один из двух типов (закрашенный ромб инкапсулирования)

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

Смежные вопросы