Opa Mestre
Então, eu consegui modelar o banco certinho com SQL puro, mas no doctrine está faltando um detalhe, vou explicar:
Eu criei um banco com algumas entidades e três dessas entidades são Produto, Lista e Pontuação. A lógica de negócio é a seguinte: Eu tenho listas mensais onde cadastro produtos e sua respectiva pontuação no determinado mês, obviamente não tenho produtos repetidos em uma mesma lista, mas pode haver produtos com a mesma pontuação.
Por exemplo:
Lista de março de 2020 -> Celular-> 50 pontos
Lista de março 2020 -> Notebook -> 50 pontos
Lista de março de 2020 -> Cafeteira -> 100 pontos
Lista de abril de 2020 -> Celular -> 60 pontos
No SQL puro eu modelei criando uma tabela "lista_produto" onde relaciono Produto e Lista onde ambos id's são a chave primária ( uma relacao de N:N) e mais um campo onde guardo a pontuação . Ficando resumidamente assim:
lista_produto:
id_produto,
id_lista,
id_pontuacao
PK(id_lista,id_produto),
FK(id_lista), FK(id_produto), FK(id_pontuacao)
Falando agora de doctrine, eu consigo gerar essa tabela "lista_produto" normalmente como foi ensinado no curso criando uma relação de many-to-many no meu mapeamento de Lista, porém, preciso enxertar a pontuação nessa join table tb. O many-to-many dentro do mapeamento de Lista e no qual preciso ter a pontuação tb:
<many-to-many field="produtos" target-entity="App\Entity\Produto">
<join-table name="lista_produto">
<join-columns>
<join-column name="id_lista" referenced-column-name="id_lista" />
</join-columns>
<inverse-join-columns>
<join-column name="id_produto" referenced-column-name="id_produto" />
</inverse-join-columns>
</join-table>
</many-to-many>