I do not know how it would handle the Products
Supponendo che si stia modellando questo per generare tabelle RDBMS, generalmente si usano 2 classi separate. La classe "child" avrebbe gli attributi Product e Product_Id come "foreign key". L'altra classe è la tua classe di ordine.
Il diagramma nella risposta di @Esther Fan - MSFT in UML-frecce-puntatori-spiegazione mostra più di quello che vuoi in effetti, tuttavia, a livello di classe è ciò che desideri. Sostituisci la parola "Order_Item" con la parola "Product" nel diagramma delle classi e ignora le altre classi non correlate al tuo caso.
Il link MSDN fornito all'interno di questa risposta potrebbe essere utile anche per te.
Una regola aziendale importante da tenere in considerazione è se l'occorrenza di un ordine sia significativa senza Prodotti o meno. Il diagramma nel link sopra presuppone una associazione di composizione tra Ordine e Prodotto (Black diamond), questo può o non può essere il tuo caso, quindi per favore controlla.
È anche comune avere una classe per un'entità richiedente e un'entità di riferimento del prodotto mostrata ma non le hai chieste. Ad esempio, dai un'occhiata a: Diagramma classi semplice .
I couldn't have ProductID because that would mean that each item in this class would have to have a separate instance for each product (E.g. someone ordered 100 products, but only placed 1 order).
La situazione di cui sopra non è un problema. Ciascuno dei prodotti userebbe la colonna FK (Order_Id). Il valore in quella colonna sarebbe lo stesso per i 100 prodotti.
Could I have an Product object in class Order?
Sì, ma questo non sostituirà il modello 1-M esistente qui. Guarda un esempio di rappresentazione UML qui: Classe interna interna .
Si noti che nei casi, è necessario programmare strutture di dati per rappresentare raccolte di dati nel codice diverso dalla struttura dati utilizzata per rappresentare le stesse informazioni nel database se si utilizza RDBMS da un'applicazione OO.