21. februar 2002 - 14:22Der er
11 kommentarer og 3 løsninger
FREMMEDNØGLE....
Jeg har et mindre problem med to tabeler, det er følgende: de to tabeler værloglejl og fpophold "ferieparkophold" er hver deres fremmednøgle i booking, hvilket gør at man skal skrive begge ind i booking, og man kan ikke både have et ferieophold og et værelse.... LØSNING?
CREATE TABLE Resevation( Rsvnr int4 NOT NULL PRIMARY KEY, kundenavn char(20) NOT NULL, rsvtype char(16) NOT NULL, bekrtype char(8) NOT NULL, datostart date NOT NULL, naetter int4 NOT NULL, antalpers int4 NOT NULL, evtforhold char(36));
CREATE TABLE Værloglejl( Vrlnr int4 NOT NULL PRIMARY KEY, Katnr int4 NOT NULL, Katpris int4 NOT NULL, periode int4 NOT NULL);
CREATE TABLE fpophold( lejlnr int4 NOT NULL PRIMARY KEY, periode int4 NOT NULL, prisuge int4 NOT NULL, miniferiepris int4 NOT NULL, prisxtradag int4 NOT NULL);
CREATE TABLE Booking( Bookingnr int4 NOT NULL PRIMARY KEY, Legimitation char(10), kundenr int4 NOT NULL, Vrlnr int4 NOT NULL, lejlnr int4 NOT NULL, FOREIGN KEY (lejlnr) REFERENCES fpophold (lejlnr), FOREIGN KEY (kundenr) REFERENCES Kunder (kundenr),
damski => hvorfor skulle det skabe problemer at tillade nullværdier i booking. FK bliver kun valideret ved faktiske værdier og hvis man ikke booker et bestemt værelse er del vel tilladt ikke at udfylde dette
Du laver en valideringsregl som siger at enten skal det ene felt være udfyldt ellers skal det andet felt være udfyldt, dvs at begge eller ingen felter må være fyldt på samme tid.
en ARC gør i den fysiske database hvad benny.dk har forklaret, men den skal dokumenteres i CASE værktøjet som en ARC. Det er en slags bue man tegner hen over to relationer ud fra en tabel. Dette betyder netop at én og kun én må/skal være udfyldt. Jeg ved at Oracle implementerer denne som en pre-insert trigger.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.