La tua domanda è buona perché stai pensando se hai bisogno di questo tavolo o meno. Ciò dimostra che ti interessa la qualità del tuo design.
La parte notazione ha ricevuto risposta completa da altri, quindi mi concentrerò maggiormente sull'altra parte.
Should I show the table created supplier_product or leave it out and have the relationship many to many between supplier and product?
Devi trovare la risposta non solo dal punto di vista tecnico ma anche dal punto di vista del business. Ad esempio, devi fare una domanda come questa:
-
Devo sapere quando un fornitore ha iniziato a fornire un prodotto alla società?
-
Il prezzo di un elemento fornito è indicativo al tempo o alla quantità fornita?
-
Esiste una quantità minima che un fornitore deve fornire per ordine di cui abbiamo bisogno di sapere?
-
Ci sarebbero associazioni tra supplier_product in altre classi nel modello?
Se la tua azienda non ha proprietà interessanti da inserire nella tabella delle intersezioni e non ci sono associazioni richieste (come nelle domande precedenti) e Se stai facendo il diagramma delle classi come parte del design di alto livello da una prospettiva OO, potrebbe fare come @Kenvin Cline suggerisce e non includere la classe nella versione attuale del modello.
Se si desidera essere precisi e chiari e / o Se si intende implementare il progetto in questa fase in un database relazionale, sia tu stesso che l'applicazione che userai per creare (forward engineer) la DLL dovrà occuparsi con la classe mancante che rappresenta la relazione molti-a-molti. Alcuni strumenti potrebbero creare automaticamente una chiave primaria e FK e vincoli RI (a scelta dello strumento) e nominare tutto ciò in un modo che potresti accettare o meno. Inoltre, il tuo mappatore ORM dovrà creare il codice per gestire questa tabella nascosta .
L'effetto del RI è fondamentale e dovrebbe essere sempre controllato e controllato. È necessario determinare con precisione cosa succede alle informazioni sugli articoli forniti quando un fornitore viene cancellato da un database.
Se stavi progettando un database fisico, ti suggerirei sicuramente di arricchire il tuo progetto e non lasciare che gli strumenti lo facciano per te, a meno che tu non abbia completamente familiarità con come e quali strumenti verranno creati per te.