Pergunta

Eu gostaria de melhorar minha compreensão das restrições de cardinalidade nos diagramas de ER.

Eu tenho duas entidades:

  1. User
  2. Location

Mas quero que o relacionamento entre essas duas entidades seja muitas para muitos (um usuário pode estar em muitos locais e um local pode ter muitos usuários).

Para fazer isso, preciso apresentar uma aula de associação UserLocation.

Está correto dizer que agora tenho 3 entidades?

Se eu desenhasse um dia do dia acima, eu desenharia no UserLocation entidade, e a cardinalidade seria assim?

User 1 ------ * User Location *  ------ 1 Location
Foi útil?

Solução

Você não precisa de uma terceira entidade.

No mundo da entidade, isso é modelado assim:

  • O usuário da entidade possui uma lista de locais.
  • O local da entidade possui uma lista de usuários.

No mundo relacional, isso é modelado assim:

  • Um usuário da tabela, com chave primária user_id
  • Um local de tabela, com chave primária local_id
  • Uma tabela user_location, com duas teclas estrangeiras, uma para cada uma das tabelas acima.

Acredito que no diagrama relacional o "intermediário" não é visível. Então, acho que você precisaria de algo assim:

Usuário * ------- * Localização

Outras dicas

Tudo depende do tipo e nível de mapeamento de direito que você está fazendo.

Você pode expressar o relacionamento como é

Entidade 1 <> entidade 2

Como usar os 'pés de corvos' para representar os muitos relacionamentos.

Ao normalizar o mapa, você quebraria muitos para muitos relacionamentos com uma mesa intermediária, isso normalmente contém as chaves primárias de ambas as muitas tabelas

Entidade 1> entidade 3 <entidade 2

Onde a entidade 3 (sua tabela intermediária) mantinha os PKs para ambas as tabelas e ocassionalmente quaisquer outros dados, como um ID exclusivo etc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top