Il problema è che il nome di una chiave straniera non può essere uguale come un'altra chiave esterna nell'intero modello.
Immagina questa situazione
Catalogo --> Fornitore
Prodotto --> Fornitore
se il nome della chiave esterna nella tabella Catalogo per il fornitore è "fornitore" e hai assegnato lo stesso nome nella tabella del prodotto, i nomi delle chiavi esterne "collidono".
Devi nominarli in modo diverso..
Ad esempio:
catalog_supplierproduct_supplier