Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - Konzeptproblem: Fremdschlüssel eintragen


Xzeer - Sa 26.06.10 12:35
Titel: Konzeptproblem: Fremdschlüssel eintragen
Hallo,

Ich arbeite gerade an einem kleinen Shop.

Das Datenbankdiagramm sieht so aus:
Datenbank

Das Anlegen und Abrufen von Kunden, Artikeln und Herstellern funktioniert prima.
Allerdings habe ich beim Anlegen einer Bestellung irgendwie ein Konzeptproblem:

Ich habe ein Formular in dem man den Kunden und das Datum wählt.
Anschließend kann man die Artikel einfügen und die Menge eingeben.
Alle Daten sind also gesammelt.

Ich muss ja dann jetzt für jeden Artikel einen Posteneintrag erstellen.
Dazu brauche ich ja die BestellNR, welche ich nicht kenne, als Fremdschlüssel.

Ich komme ums verrecken nicht drauf, wie ich die Posteneinträge und anschließend die Bestellung ablegen kann.
Könnt ihr mir da helfen?


Xzeer - So 27.06.10 19:09

kann mir da keiner bei helfen?
das muss doch irgendwie funktionieren...

ich brauche, um die posten (artikel einer bestellung) zu erstellen die bestellnummer (fremdschlüssel).
allerdings wird die ja von der datenbank automatisch hochgezählt.

wie komme ich an die bestellnummer?


Kha - So 27.06.10 21:32

Ich setzte lieber auf echte O/RMs und habe mich mit diesem Zwischending typisierte Datasets nicht lange auseinandergesetzt, aber im einfachsten Falle kann es nur so funktionieren, dass du ein INSERT für die Bestellung ausführst, dabei oder in einem darauffolgenden SELECT dessen ID bekommst und dann mit einem weiteren INSERT schließlich den Posten einfügst.


Ralf Jansen - So 27.06.10 21:55

Keiner zwingt dich AutoIncrement Felder als Primary Keys zu verwenden. Du kannst auch einen im Client generierten Key verwenden. Üblicherweise nimmt man dazu GUIDs (der Datentyp im SQL Server heißt uniqueidentifier).


Xzeer - Mo 28.06.10 13:40

Okay, eine solche GUID wäre eine Möglichkeit.

Doch kann ich mir denn sicher sein, dass eine solche ID sich auf lange Zeit nicht wiederhohlt?


Ralf Jansen - Mo 28.06.10 14:08

Zitat:
Doch kann ich mir denn sicher sein, dass eine solche ID sich auf lange Zeit nicht wiederhohlt?


Wenn sich dein Zeitraum in dem du das Sicherstellen willst nicht in Billarden Jahren misst in dem Billarden User Billarden von Guids pro Sekunde erzeugen hast du kein Problem.


Xzeer - Mo 28.06.10 14:33

hört sich sicher genug an! :lol: