3

Я работаю в MS Visio 2010. Это соответствующая часть моего ERD:

ERD

Связь между Событием и Приключением правильная: существует внешний ключ от События к Приключению, и этот FK является частью первичного ключа События.

Тем не менее, я не могу понять, как сделать линию отношений между приключением и типом размещения такой же, как и между событием и приключением, не делая эти отношения частью ПК приключения. Когда я смотрю на «Разные» свойства этой линии отношений, я хочу, чтобы это было:

  • Кардинальность: ноль или более
  • Тип отношений: Неидентифицируемый
  • Ребенок имеет родителя: не обязательно (обязательно)

Но флажок для третьего свойства неактивен и переключается между Истиной / Ложью, когда я делаю связь Неидентифицирующая / Идентифицирующая.

Единственный способ выяснить это - отсоединить два столбца от вкладки «Определение», которая затем снимает флажок «Необязательно», но затем я теряю свойство внешнего ключа в столбцеtainType, и пока символы отношения правильно, линия остается пунктирной.

Как сделать так, чтобы количество элементов в строке слева отображалось так же, как и в строке отношения справа, без добавления аккомпанемента к PK Adventure?

2 ответа2

1

Этот поток MS TechNet идентифицирует проблему как связанную с тем, как Visio 2010 автоматически вставляет внешний ключ при создании отношения между объектами:

Действительно, кажется, что сначала ввод имени поля внешнего ключа, а затем установление отношения делает это возможным. Проверка / снятие флажка Req'd на внешнем ключе затем автоматически проверяет / снимает флажок Необязательно для отношений.

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

Как создать обязательные неидентифицирующие отношения

Перед созданием отношения добавьте требуемый атрибут (ы) FK к дочернему объекту, используя те же имена, что и в PK родительского объекта. Убедитесь, что опция «Req'd» отмечена для каждого атрибута FK.

В вашем примере мы добавляем атрибут "name" к сущности Adventure:

Теперь добавление отношения автоматически создает FK, но сохраняет неидентифицирующее, необязательное состояние существующего атрибута в Adventure:

Вы можете переименовать атрибут FK так, как вам нравится.

Обратите внимание, что флажок «Дочерний родитель: необязательный» по-прежнему неактивен. Даже после этого изменения свойств отношения и / или задействованных атрибутов иногда имеют нежелательные побочные эффекты, и вы можете обнаружить, что неправильный символ вороньей лапки снова "застревает". К счастью, есть более быстрый способ исправить это, чем удалить связь и начать заново.

Как исправить существующие отношения

Выберите связь с "застрявшим" символом вороньей лапки и перейдите на вкладку "Определение" в окне "Свойства базы данных".

Вы увидите линию со стрелками, соединяющую атрибуты PK и FK в родительских и дочерних объектах. Выберите связанные атрибуты в обеих таблицах и отключите их, нажав кнопку в среднем столбце. Если ключ составной, вы увидите несколько пар атрибутов:

После того, как вы отключили все атрибуты, связанные с отношением, поле «Дочерний родитель: необязательный» на вкладке «Разное» снова станет активным. Установите для свойств отношения значение Неидентификация с необязательным родителем, дважды проверьте, что атрибуты FK в дочернем объекте установлены на «Req'd», а затем вернитесь на вкладку «Определение» и повторно свяжите атрибуты PK и FK. :

-1

Visio автоматически добавляет столбец внешнего ключа при создании новых отношений. Чтобы изменить обязательные отношения, просто установите обязательный атрибут этого столбца (в свойствах объекта, вкладки столбцы).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .