Ich habe eine Tabelle mit Kunden, Artikel und Bestellungen.
Mein Problem besteht darin, dass wenn ein Kunde einen Artikel kauft er eine Bestell Nr. erhält, bestellt er einen 2. Artikel bekommt eine andere Bestell NR.
Wie kann ich das Problem so lösen, dass der Kunde wenn er 2 oder mehrer Artikel bestellt, nur 1 Bestell Nr. erhält?
Es fehlt noch die Tabelle Bestellung, deren bestell_id Primärschlüssel ist und noch Daten wie Kunden_ID, Versandart_ID, Zahlungsart_ID, usw enthält, also die allegemeinen Daten zu EINER Bestellung.
In der Tabelle Bestellt_Artikel sind im einfachsten Fall nur noch Bestell_id, Artikel_ID und Menge drinnen; je nachdem, was noch alles für einen Artikel extra gewählt werden kann, diese Daten auch noch - wenn z.B. für mehrere Artikel einer Bestellung verschiedene Versandarten gewählt werden können, ist auch noch die Versandart_ID drinnen usw.
Also wenn ich jetzt auf Kunde geh, dort auf Bestellung und dann auf Bestelldetails, sprich Bestell_Artikel Tabelle, dann werden mir alle Bestellungen angezeigt und nicht nur die zu einer Bestell_ID.
das Datenmodell weist ein paar Schwächen auf, das solltest Du erstmal geradeziehen.
Fang mit der Benamsung an: Bestellkopf statt Bestellungen, Bestellposition statt Bestelldetails.
Die Kunden_Id hat in der Bestellposition nichts verloren, weil alle Positionen zu einem Bestellkopf gehören. Nur dort ist der Kunde vermerkt. Desgleichen gilt fürs Datum, es sei denn, die Applikation müsste wirkllich wissen, wann die Bestellposition erfasst wurde - äußerst unwahrscheinlich.
Der Schlüssel kandidat für die Bestellposition besteht aus Bestellkopf_Id und einer Artikelnummer. Als Schlüssel würde ich dennoch einen simplen Autowert bevorzugen, das macht das (Beziehungs-)Leben einfacher.
Als nächstes kläre, was Produkt überhaupt ist, da passt der Schlüssel nicht zum Namen - Kategorie würde ich niemals in den Schlüssel aufnehmen.
Ralf hat schon recht: Mit dem Datenmodell steht und fällt die ganze Applikation. Die Beziehungsdefinition kann ich leider nicht (mehr?) einsehen, also hier der Klüngel einigermaßen komplett.
Ich habe eine Tabelle mit Kunden, Artikel und Bestellungen.
Du hast x Kunden, jeder Kunde kann y mal bestellen, jede Bestellung kann z Positionen haben.
**tbl\_Kunde\_Stamm**
pky\_Kunde\_Stamm: AutoWert, Primärschlüssel
... blablabla ...
**tbl\_Artikel\_Stamm**
pky\_Artikel\_Stamm: AutoWert, Primärschlüssel
... blablabla ...
**tbl\_Bestellung\_Kopf**
pky\_Bestellung\_Kopf: AutoWert, Primärschlüssel
fky\_Bestellung\_Kopf\_Kunde: Long Integer, Beziehung zu tbl\_Kunde\_Stamm n:1
... blablabla ...
**tbl\_Bestellung\_Position**
pky\_Bestellung\_Position: AutoWert, Primärschlüssel
fky\_Bestellung\_Position\_Kopf: Long Integer, Beziehung zu tbl\_Bestellung\_Kopf n:1
fky\_Bestellung\_Position\_Artikel: Long Integer, Beziehung zu tbl\_Artikel\_Stamm n:1
... blablabla ...
Ich würde noch dringend empfehlen, die Kundenadressen vom -Stamm, die Artikelpreise vom -Stamm zu trennen und die Beziehungen mit RI zu versehen.