Diagrama de relacionamento de entidade
-
28-09-2019 - |
Pergunta
Eu gostaria de melhorar minha compreensão das restrições de cardinalidade nos diagramas de ER.
Eu tenho duas entidades:
User
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
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.