02. august 2004 - 00:26Der er
18 kommentarer og 2 løsninger
Problem med forespørgsel/relation
Hej kloge hoveder :)
Jeg er ved at lave et system til min bror så han kan holde styr på div. dokumenter som er sendt til hans kunder.
Mit problem består i at designe databasen rigtigt.
Lad mig kort forklare... En kunde bestiller et produkt mellem flere mulige Hvert produkt har en række standard-dokumenter som skal udfyldes med data om kunden osv.
Men hvert produkt her ikke nødvendigvis de samme dokumenter
Foreløbig har jeg bygget databasen op på følgende måde:
Tabel: Kundeinfo Navn, adresse, postnr, by m.m Tabel: Status Ikke startet, igangværende, færdig Tabel: Produkter Produkt1, produkt2, produkt3 osv osv Tabel: Dokumenter Dokument1, dokument2, dokument3 osv osv
Kunden bestiller så f.eks. produkt 1 som knytter sig til dokument1 og dokument 2, men dokument 1 og 2 kan muligvis også knytte sig til produkt 2, så derfor mit problem
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Hvis der er tale om at dokumenterne er ens, dvs. Dokument 1 har en beskrivelse som er generel og dækkende for flere produkter, Doku ment 2 har en beskrivelse som er generel og dækkende for flere produkter osv. skal du oprette en relatiomn mellem din produkttabel og domumenttabel
Eksempel :
SELECT tblProdukt.ProduktID, tblProdukt.Produkt, tblDokument.Dokument FROM tblProdukt INNER JOIN tblDokument ON tblProdukt.DokumentID = tblDokument.DokumentID;
Efter udfyldning af dokument, knytter dokomentet sig vel mere til KundeID ( med produktbeskrivelse ) end til ProduktID, og skal vel som sådan gemmes under KundeID
Den nemmeste (og mest rigtige) måde at lave denne mange-til-mange relation på, er ved at lave en tredie tabel, som indeholder oplysningerne om relationer mellem produkter og dokumenter. Tabellen behøver kun at indeholde felterneprodukter_id og dokumenter_id. Du kan have de to felter som kombineret nøgle, så du behøver i og for sig ikke et id-felt i denne tabel. Der skal laves relationer til de tilsvarende felter i Produkter- og Dokumenter-tabellerne. Herefter kan du vha forespørgsler hente de dokumenter, som hører til et produkt.
den er jeg med på (tror jeg nok :-) ) men tilknyttede_dokumenter skal vel stadig være et array som peger på de forskellige dokumenters id??? - ellers kan jeg ikke se hvordan man skal kunne finde flere dokumenter på samme produkt?
Nej, der er ikke behov for det, som du kalder et array. Hvis Produktet med ID 1 har tilknyttet dokumenterne 1, 2, 3, 4 og 5 og produktet med ID 2 har tilknyttet dokumenterne 4, 5, 6 og 7, skal tabellen indeholde følgende rækker:
1 1 1 2 1 3 1 4 1 5 2 4 2 5 2 6 2 7
Med andre ord. Én række til én kombination af produkt-dokument. Når du skal finde alle dokumenterne for produkt1 søger du rækker i tabellen, som har ProduktID = 1. Du kan så vælge at vise de tilhørende produktnavne og dokumentnavne, som du kan hente vha. relationerne
øhhh... den skal jeg vist lidt tygge lidt på... ikke helt sikker på at jeg kan følge dig helt - Jeg forstår hvad du siger, men i tvivl om hvordan jeg skal lave rækkerne i databasen...
Hvad blev den endelige løsning så ? ... tak for point c",)
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.