2015-04-20 4 views
1

Я новичок в диаграммах ER. Я заметил, что draw.io (который был рекомендован для Stackoverflow) не имеет одного (необязательного) отношения к одному (обязательному).Диаграммы ER: один (необязательно) к одному (обязательно)?

Предположим, у меня есть две таблицы «пользователь» (id, affiliate_id) и «affiliate» (id). Там не обязательно быть аффилированным лицом, и в этом случае user.affiliate_id будет null.

Однако, если есть партнер, то user.affiliate_id будет ссылаться на affiliate.id.

Таким образом, это не было бы одним (необязательным) для одного (обязательного) отношения?

PS: Я думал, что, возможно, user.affiliate_id не должен иметь значение null в строгом смысле слова. Однако он не нарушает ограничений внешнего ключа (по крайней мере, для SQLite 3).

ответ

2

Я думаю, что вы описываете отношения «один ко многим». Один пользователь может (необязательно) быть связан с одним аффилированным лицом, но тот же партнер может быть связан с несколькими пользователями.

Или я не понимаю?

+0

Вы правы. Похоже, я был совершенно не в курсе. Спасибо! (Мне нужно подождать пару минут, прежде чем я смогу принять ваш ответ.) –

1

Да, вы правы, это будет нуль/один (или нуль/много) для одного типа отношений, который должен быть показан на диаграмме. Существуют разные обозначения для диаграмм ER (и поэтому на самом деле предпочтительнее использовать диаграммы классов UML). Например, в notation used by Oracle необязательный конец строки соединения, представляющий тип отношения, аннотируется как с нулем, так и с одним символом. В UML аннотация необязательного конца ассоциации будет 0..1 (если однозначная) или 0..* (если многозначная).

+0

Как отметил Марк, я ошибался в том, что я принимал отношения «один к одному», а не отношения «один ко многим». Спасибо за информацию о различных обозначениях. Неплохо подмечено! –

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