Samengestelde primaire sleutel

Status
Niet open voor verdere reacties.

marcel222

Gebruiker
Lid geworden
6 dec 2008
Berichten
10
Hallo,

Ik heb even een vraag over een samengestelde primaire sleutel.
De situatie is als volgt:

Ik heb een ordertabel waarin op dit moment twee bedrijven hun orders in kunnen opslaan, omdat elk bedrijf zijn eigen orderID reeks moet hebben kan ik de OrderID kolom niet in zijn eentje primaire sleutel (PK) maken, dus heb ik dit gecombineerd met BedrijfID die aangeeft welk bedrijf de order heeft geboekt.
Elke order wordt dus uniek gidentificeerd door: PK <OrderID, BedrijfID>

Nu heb ik een tweede tabel waarin de orderregels zich bevinden, een order kan bestaan uit meerdere orderregels en een orderregel komt maar op 1 order voor. Elke orderregel heeft een unieke ID namelijk OrderregelID.
De koppeling met de order tabel had ik in eerste instantie gemaakt via de foreign key (FK) OrderID in de orderregel tabel te koppelen met de PK OrderID in de ordertabel maar omdat ik gebruik maak van een samengestelde primaire sleutel werkt dit niet.

Mijn vraag is nu hoe kan ik dit het beste oplossen? Ik had zelf twee verschillende oplossingen bedacht maar ik denk dat dit nog wel makkelijker kan.

De oplossingen waren als volgt:
Ik kan in de orderregel tabel een FK BedrijfID toevoegen, maar dan heb ik op twee plaatsen mijn BedrijfID opgeslagen namelijk in de Order zelf en in elke orderregel van die order.

Ik kan ook een derde tabel aanmaken die drie kolommen bevat namelijk OrderID, BedrijfID en OrderRegelID en deze koppelen aan de Order tabel en Orderregel tabel.

Alvast bedankt voor de hulp

mvg

Marcel
 
Waarom moet perse elk bedrijf zijn eigen OrderID reeks hebben? Is het niet makkelijker om de OrderID gewoon echt uniek te maken?
 
Dat zou ook kunnen.
Ik moet dan echter 1 kolom toevoegen in de ordertabel namelijk ordernummer.
Een order heeft dan twee "IDs", 1 die de order in de database identificeert en 1 die het ordernummer voorstelt.
Ik kan dan namelijk niet de OrderID gebruiken als ordernummer, omdat dan de ordernummers van een bepaalt bedrijf niet op 1 volgen, de (OrderID) reeks wordt dan gedeelt met de andere bedrijven.

Is dit een normaal toegepaste methode?
 
zo zou ik het idd oplossen, auto increment waarde opnemen in de order tabel, en deze hanteren als referentie in alle andere tabellen.
 
Maakt het die bedrijven uit dat hun ordernummers niet opvolgend zijn dan?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan