Атрибуты могут как играть роли в отношениях, так и быть принадлежащими . То, что вам нужно, должно зависеть от вашей доменной модели и того, что вы пытаетесь достичь, а не от того, что возможно.
Одна общая идея состоит в том, что каждый ролевый игрок добавляет семанти c информацию, которая помогает определить значение экземпляра отношения, в котором он играет роль. С другой стороны, владение атрибутом добавляет дополнительную информацию к пьесе. данных, которые уже значимы.
Таким образом, мы можем представить, что contract
между person
и company
имеет человека и компанию в качестве ролевых игроков, и мы добавляем атрибут date
, когда контракт начинается и заканчивается. Однако, если мы вместо этого определили контракт как семантически отличный limited-time-contract
, то может иметь смысл иметь start-date
, end-date
, person
, company
, чтобы играть роли в отношении limited-time-contract
.
Немного другой способ думать об этом состоит в том, что атрибуты, играющие роли, дают дополнительный контекст в том, как этот атрибут действует в отношении. Прямое владение не несет никакой дополнительной информации.