Gå til innhold

mssql: multi-unique kombinasjoner


Anbefalte innlegg

Lar det seg gjøre å begrense hva som kan legges inn i en tabell ved å flere unike kombinasjoner av verdier?

Et klassisk eksempel, mange-til-mange-sammenheng. En ordre har mange varer, en vare kan stå på mange ordre. Den klassiske løsningen er en tabell 'ordrelinje' bestående av kolonnene ordreId og vareId (og antall, rabatt, og andre ubetydelige kollonner i denne sammenhengen.).

 

Så den spesielle vrien - en vare kan kun stå en gang på en gitt ordre og rekkefølgen på ordrelinjene har en betydning. Altså har tabellen ordrelinje følgende kollonner av betydning: ordreId, vareId, linjenummer.

For ordreId=1 vil man f.eks ha vareId=1000 på linjenummer=1, vareId=1021 på linjenummer=2, osv.

 

Saken her er da at man ønsker at kombinasjonen av ordreId og vareId skal være unik. Og en ordre kan jo bare ha en linje=1, en linje=2, osv. Altså ønsker man også at kombinasjonen av ordreId og linjenummer også skal være unik.

 

Hvordan kan man (hvis mulig) definere tabellen slik at den får to kombinasjoner av kombinerte unique?

Lenke til kommentar
Videoannonse
Annonse

Det er den ene kombinasjonen. Får man til den andre samtidig?

 

 

Edit:

Hvis det ikke kom klart nok frem. Det jeg prøver på er dette:

 

create table UsersLists (

OrdreId int not null,

VareId int not null,

Linjenr int not null

constraint u_Vare unique (OrdreId, VareId)

constraint u_Linje unique (OrdreId, Linjenr)

)

men 2x unique er ikke lov. Heller ikke primary key + unique

Endret av petterg
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...