Anfang mit dem Tehma Relationale-Datenbanen

DerEisige

Erfahrenes Mitglied
Hallo,
ich fange nun mit dem ausführlichen Thema Relationale-Datenbanken an und habe nun ein paar Verständnis Probleme.


Ich habe 3 Tabellen
Hersteller
idHersteller, name, telefon, strasse, plz, ort, datum

Artikel
idArtikel, name, nettopreis, beschreibung, Hersteller_idHersteller

Kunde
idKunde, vname, nname, strasse, plz, ort, datum

und als Verbinder 1 Tabelle
Bestellung
Kunde_idKunde, Artikel_idArtikel

2014-06-28_174215.jpg

Und da ja nur pro Tabellenspalte nur ein Daten Satz vorkommen soll stellt sich mir nun die Frage wie das bei der Verbindungstabelle aussieht wenn der Kunde mehr als ein Artikel bestellt.

Hoffe ich habe mich verständlich ausgedrückt.
mfg. derEisige
 

Anhänge

  • 2014-06-28_174215.jpg
    2014-06-28_174215.jpg
    53,4 KB · Aufrufe: 7
Hallo derEisige,

Und da ja nur pro Tabellenspalte nur ein Datensatz vorkommen soll [...]
Woher hast du dieses Aussage? Vielleicht war sie in einem anderen Kontext gemeint, aber allgemein ist diese Aussage falsch.

Die Tabelle "bestellung" wird so gefüllt:
Code:
Benutzer-ID, Artikel-ID
1,100
1,150
2,300
1,300
3,800
Im obigen Beispiel hat Benutzer 1 die Artikel 100, 150 und 300 bestellt. Benutzer 2 hat nur den Artikel 300 bestellt und Benutzer 3 auch nur einen Artikel, und zwar Artikel Nummer 800.
 
oke also hat jeder Artikel einen Eintrag,

und wie bekomme ich es nun hin, die einzelnen Bestellungen zu Identifizieren also wen.

Benutzer 1 bei der ersten Bestellung die Artikel 100 und 300 bestellt und bei der 2 den Artikel 150 bestellt.
 
oke also hat jeder Artikel einen Eintrag
Nein, für jede Bestellung, die jemals getätigt wurde, gibt es einen Eintrag in der Tabelle Bestellung.

Alle Bestellungen von Benutzer 1:
SQL:
SELECT artikelId FROM Bestellung WHERE benutzerId=1
Ergebnis: 100, 150 und 300

Alle Benutzer, die Artikel 300 bestellt haben:
SQL:
SELECT benutzerId FROM Bestellung WHERE artikelId=300
Ergebnis: 2, 1
 
Ja das hab ich auch so verstanden. ich meinte was muss ich enden damit man pro Bestellung mehrere Produkte haben kann?
 
Moin DerEisige,

du könntest damit beginnen, deine "bestellung" benamste Tabelle in zwei Tabellen zu zerlegen, um die Attribute zu pflegen, die eine "Bestellung" in der Realität normalerweise minimal hat.
Also statt nur "KundenID" und "ArtikelID" in einer Tabelle so etwas:
* eine Tabelle für "Bestellungen" mit den Attributen
- BestellungID (Autowert, PK)
- Bestelldatum
- KundenID ( FK auf Kundentabelle)
- (ggf weitere)

* eine Tabelle "BestellPositionen"
- BestellungID ( PK-Feld1v2, FK auf Bestellung)
- ArtikelID (PK-Feld 2v2, FK auf Artikel)
- Anzahl
- (ggf weiteres)

Bei deiner jetzigen Tabellenstruktur kann kein kunde mehr als unquantifizierte Artikel bestellen (also Artikel 100 in nicht genannter Stückzahl) und kein Kunde kann einen Artikel öfter als einmal im Leben bestellen.

Grüße
Biber
 

Neue Beiträge

Zurück