Razão da mudança:
Já que a entidade Curtida
não possui campo nenhum. Por que não tira-lá e deixar a relação entre Perfil
e Usuario
?
- Atualmente a implementação de likes é feita da seguinte forma:
Existe uma classe Curtida
que tem três atributos: id
, perfil
e usuario
. Na qual id
é o identificador, perfil
é o perfil que recebe esse like e o usuario
é o usuário que deu like no perfil.
Na classe Perfil
tem um atributo de coleção(List
) de Curtida
. Com o relacionamento de 1 perfil pode possuir várias Curtidas
.
Na classe Usuario
tem um atributo de coleção(List
) de Curtida
. Com o relacionamento de 1 usuário pode dar várias Curtidas
.
-
Vantagens:
- A ideia de um like fica explicita.
-
Desvantagens:
- A criação de uma entidade, repository e service.
- Um pequeno aumento na complexidade das consultas.
Na classe Perfil
terá um atributo de coleção(List
) de Usuario
, com o relacionamento de muitos perfis podem 'possuir' vários
Usuario``(A ideia de curtir está implícita). Toda vez que um usuário curtir um perfil, ele(o usuário) será salvo dentro dessa coleção.
Na classe Usuario
terá um atributo de coleção(List
) de Perfil
, com o relacionamento de muitos usuários podem 'possuir' vários
Perfil``. Toda vez que um usuário curtir um perfil, ele(o perfil) será salvo dentro dessa coleção.
OBS: Não precisa ser uma coleção de Usuario
, pode salvar apenas o identificador(email
). E também vale para coleção de Perfil
, basta salvar apenas o identificador(id
).
OBS: A classe dominadora é Perfil
.
-
Vantagens:
- Diminuição na complexidade das consultas.
- Evita a criação de entidade, repository e service.
-
Desvantagens:
- A ideia de um like fica implícita.