Hallo,
fast alles richtig, aber:
Die Bestellpositionen sind schlecht implementiert. Positionen sollte als Schlüssel Bestellung_ID und Position haben. Das ist dann eine schwache Entity. Hier ist ID funktional abhängig von Bestellung_ID und Position. Durch diesen Alternativschlüssel bekommst du eine Verletzung der Boyce-Codd-Normalform.
Einen schweren Designfehler hast du noch beim Preis. Der Artikel besitzt einen Basispreis. Eigentlich sogar eine Preisfortschreibungstabelle mit Artikelnummer, Datum und Preis. So kann man Preise in die Zukunft projektieren und in der Vergangenheit aufbewahren. Bei einer Bestellung wird aus dem derzeit gültigen Basispreis und den Skonti, Rabatten und Bonusen der Kunden ein für diesen Vorgang gültiger Preis berechnet. Dieser Preis bleibt, auch wenn sich der Artikelpreis ändert.
Rechnungen haben einen Status oder aber ein Datum, wann sie bezahlt wurden. Genauer auch hier gibt es evtl. mehrere Zahlungseingänge.
Gruß
Peter
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]