Определить отношения, зависящие от других отношений в концептуальной модели
Мне нужно помочь определить отношения в концептуальной модели для базы данных. Я делаю это в PowerDesiner. У меня есть 3 объекта (назовем их A, B и C).
A doesn't have to have B, if A has B then only once.
B has to have at least one A.
B may have C, but doesn't have to.
C have precisely two B.
C has at least one A.
C can have A only if A is part of B, which is in relationship with C (one of the two B to C).
A may have C, but doesn't have to.
Это слишком сложно для меня, у меня была идея, но она оказалась совершенно неверной. Это только часть проекта, но остальные не влияют на эти 3. Мне нужно сделать эти ограничения на концептуальном уровне, что является именно моей проблемой.
Моей первой и, вероятно, лучшей идеей была эта http://i.snag.gy/Ofdze.jpg но она не включает в себя условие, что C может иметь A, только если A является частью B, что связано с C (один из двух B до C)
Затем я придумал это http://i.snag.gy/gKNQ9.jpg но как решение, прежде чем я думаю, что оно не содержит того же условия, еще хуже, кажется, действительно испорченное решение.
1 ответ
В порядке,
для ясности я буду ссылаться на условия вашего отношения на число строк, которые вы описали, поэтому Row_1-2 будет ссылаться на утверждения в 1-й и 2-й строке вашего вопроса.
Пожалуйста, обратите внимание, в ваших 5-м и 6-м утверждениях есть логическая ошибка.
Вы говорите, что у С есть хотя бы один А, а у С может быть А только в том случае, если... эти два невозможны вместе.
Я пропущу 5 и оставлю 6 в своем ответе.
Давайте посмотрим, прежде всего, добавим связь между А и В
Затем выберите отношение, щелкните его правой кнопкой мыши и выберите " Изменить объект",
ты получишь:
Обратите внимание, что эта новая сущность идентифицирует отношения между A и B, она понадобится вам для выполнения вашего шестого утверждения.
Теперь добавьте отношения между C и B и между C и A (через Rel_A-B)
Обратите внимание, я скорректировал количество элементов в соотношении между B и C (2,2)