16. november 2004 - 10:37Der er
6 kommentarer og 1 løsning
relationer mellem 3 tabeller. hvordan?
jeg har 3 tabeller, som laves ud fra følgende script:
--Opretter tabellen 'mg_kunder': CREATE TABLE mg_kunder ( kunde_id int IDENTITY NOT NULL, firma char(200) NOT NULL default "", fornavn char(200) NOT NULL default "", efternavn char(200) NOT NULL default "", adresse char(200) NOT NULL default "", postnr int NOT NULL default 0, city char(200) NOT NULL default "", tlf int NOT NULL default 0, fax int default 0, dato int NOT NULL default 0 PRIMARY KEY (kunde_id) )
--Opretter tabellen 'mg_faktura': CREATE TABLE mg_faktura ( faktura_id int IDENTITY NOT NULL, kunde int NOT NULL default 0, vare int NOT NULL default 0, betalt char(3) NOT NULL default "nej", dato int NOT NULL default 0 PRIMARY KEY (faktura_id) )
--Opretter tabellen 'mg_varer': CREATE TABLE mg_varer ( vare_id int IDENTITY NOT NULL, varenavn char(200) NOT NULL default "Intet Varenavn.", pris int NOT NULL default 0, betalt int NOT NULL default 0, dato int NOT NULL default 0 PRIMARY KEY (faktura_id) )
i tabellen 'mg_faktura' vil jeg gerne have følgende relationer: kunde --> mg_kunder --> kunde_id vare --> mg_varer --> vare_id
--Opretter tabellen 'mg_kunder': CREATE TABLE mg_kunder ( kunde_id int IDENTITY NOT NULL, firma char(200) NOT NULL default "", fornavn char(200) NOT NULL default "", efternavn char(200) NOT NULL default "", adresse char(200) NOT NULL default "", postnr int NOT NULL default 0, city char(200) NOT NULL default "", tlf int NOT NULL default 0, fax int default 0, dato int NOT NULL default 0 PRIMARY KEY (kunde_id) )
--Opretter tabellen 'mg_faktura': CREATE TABLE mg_faktura ( faktura_id int IDENTITY NOT NULL, kunde int NOT NULL default 0, vare int NOT NULL default 0, betalt char(3) NOT NULL default "nej", dato int NOT NULL default 0 PRIMARY KEY (faktura_id) )
--Opretter tabellen 'mg_varer': CREATE TABLE mg_varer ( vare_id int IDENTITY NOT NULL, varenavn char(200) NOT NULL default "Intet Varenavn.", pris int NOT NULL default 0, betalt int NOT NULL default 0, dato int NOT NULL default 0 PRIMARY KEY (faktura_id) )
ALTER TABLE [mg_faktura] WITH NOCHECK ADD CONSTRAINT [PK_mg_faktura] PRIMARY KEY CLUSTERED ( [Faktura_ID] ) ON [PRIMARY] GO
ALTER TABLE [mg_kunder] WITH NOCHECK ADD CONSTRAINT [PK_mg_kunder] PRIMARY KEY CLUSTERED ( [Kunde_id] ) ON [PRIMARY] GO
ALTER TABLE [mg_varer] WITH NOCHECK ADD CONSTRAINT [PK_mg_varer] PRIMARY KEY CLUSTERED ( [vare_ID] ) ON [PRIMARY] GO
de 3 med primary virkede ikke, da der allerede er defineret primary.
den sidste lavede godt nok en relation, men hvordan bruger man den? I din select sætning bruger du den da ikke, gør du?
det her var det der virkede: ALTER TABLE [mg_faktura] ADD CONSTRAINT [FK_mg_faktura_mg_kunder] FOREIGN KEY ( [Kunde] ) REFERENCES [mg_kunder] ( [Kunde_id] ), CONSTRAINT [FK_mg_faktura_mg_varer] FOREIGN KEY ( [vare] ) REFERENCES [mg_varer] ( [vare_ID] ) GO
Nei den oppretter kun relationer i databasen. SQL`en benytter ikke den.
//Morten
Synes godt om
Ny brugerNybegynder
Din løsning...
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.