Во-первых, было бы проще обсудить вашу ситуацию, если бы вы не использовали b
для обозначения нескольких разных вещей.На вашей диаграмме четыре отношения;ради обсуждения вы можете назвать их d
, e
, f
и g
.
Чтобы ответить на ваш вопрос, вы не можете и не должны включатьвид ограничения, о котором вы говорите в модели.Модель определяет отношения между видами управляемых объектов, но ничего не говорит об отдельных объектах.Обычно лучше пытаться мыслить с точки зрения объектов, когда вы изучаете Базовые Данные, но вы должны знать, что сущности, которые вы определяете в модели, аналогичны таблицам в реляционной базе данных: они определяют, что может бытьхранится, а не то, что код должен или должен (или не должен ) хранить.
Чтобы ограничить Ca одним из A в Cbbsвам нужно будет написать код.Если Ca установлен только в одном месте, вы можете использовать ограничение в этом коде.Если ограничение необходимо для правильной работы C, вы можете вместо этого (или дополнительно) выбрать добавить в установщик Ca проверку, которая подтверждает, что A является одним из разрешенных.Вам также может понадобиться исправить установщик для Cb, чтобы в случае изменения Cb он проверял, что Ca все еще действует, и делает что-то соответствующее, если это не так (снимите Ca, выберите новый Ca, откажитесь принять новый Cb, опубликуйте уведомление, брось исключение, что угодно).