11. april 2005 - 15:13Der er
22 kommentarer og 1 løsning
Hvordan relatere?
Jeg sidder med et spørgsmål i Access, som jeg ikke har meget erfaring i. Er sikkert barnemad for Jer eksperter. Men for at komme videre, skal jeg svare på hvordan relationerne skal være mellem nogle tabeller: Kunder, Kontakter, Ordrer, Sælger, Kontakttyper, Postnumre, Nye kunder. Disse tabeller skal altså relatere til hinanden naturligvis. Og jeg har læst mig til at der findes ""en-til-en", "en-til-mange" og "mange-til-mange" relationer. Hvad ville være et fornuftigt svar på hvordan disse tabeller skal relateres?
Jeg forestiller mig, at du i tabellen Ordrer indtaster ordrer, hvor du med combo plukker data fra de øvrige tabeller. I ordrer kan du således have en kunde flere gange ligeledes en sælger o.s.v.. Derimod kan du i tabellen Kubder kun have en kunde een gang ligeledes i tabellen sælger hvor en sælger kun kan optræde een gang.
Hvad er forskellen mellem tabellerne Kunder og Nye Kunder? De bør slås sammen til een tabel.
Jeg har selv måttet beslutte hvilke tabeller, der skal være. Så hvis I synes de skal være lidt anderledes, så kan jeg sagtens ændre dem. Det skal simulere et mindre håndværkerfirma, som indfører EDB - og så er det spørgsmålet, hvad de har brug for af database. Kunne vel være Kunder (Kundenummer/Navn/Adresse/Postnummer), Ordrer (Oprettet af/Kunde/dato), Kontakter (Navn), Sælger (Navn/forkortelse), kontakttyper (Tlf/skriftlig tilbud/Messer), Nye (eller måske "potentielle") kunder (Navn/adresse/postnummer/dato)...eller sådan noget lignende. Og så skal de relateres. Mon det er nok jeg svarer "en-til-mange"..jeg skal også tegne et ER diagram, dvs. med pile som viser relationerne.
Må være din primære tabel. Lav kombinationsbokse der henter data fra de øvrige tabeller. Lav dine relationer som een til mange og tag et screnshot af dit relationsvindue så har du dit ER-diagram.
Lad være at have mellemrum i dine objektnavne. Det fører kun til bøvl senere hen.
Relationsvindue - er det det, der hedder "objektafhængigheder", som kan ses ude i højre margen, du mener? Hvordan gør jeg Ordrer til min primære tabel?
Relationsvinduet ser du når du åbner din db i databasevinduet og trykker på ikonet med relationer. Det er 3 små firkanter med streger imellem. Men lad markøren glide over ikonerne til du ser tipteksten "Relationer"
Tabellen "Ordrer" gør du til din primære tabel ved at lade den være den du indtaster i. De øvrige tabeller indeholder data om henholdsvis Kunder, Sælger m.v.
Jeg har nu begrænset mig til følgende tabeller: Ordrer (medarbejderID, KundeID, Ordredato), Kunder (KundeID, Firmanavn, adresse, postnr, kontaktperson), kontaktpersoner (KontaktID, Fornavn, efternavn), Postnumre (postnr). Jeg har så gjort Ordrer til primær tabel. ER-diagrammet ses her: http://pbs.1go.dk/er.gif Ser det nogenlunde fornuftigt ud?
Det er svært at se billedet. Men jeg kan ikke lide, at du har medarbejderis som primær nøgle i tabellen "Ordrer". Så kan medarbejderen jo kun optræde een gang i den tabel. Er det korrekt, eller kan medarbejderen ikke tilknyttes flere ordrer?
Nej, selvfølgelig kan medarbejderen have flere ordrer igang. Hm, det var jeg ikke klar over var sket. Hvad bør primær nøgle så være dèr - og hvordan laver jeg det om?
Du er nødt til at slette relationen før du kan ændre PK. Derefter slettyer du PK og opretter en ny med at autonummereringsfelt. Opret derefter din relation igen.
Altså, det er ret svært at arbejde med, når man aldrig har lært om det. Hvis jeg forstår dig ret, så er det i tabellen Ordrer, at MedarbejderID er primær nøgle.Jeg går ud fra, at det ser du ved, at den er i hævet skrift (bold). Der er 2 relationer mellem Ordrer og kontaktpersoner. Det er disse, jeg skal fjerne. Derefter oprette en autonummerfelt (hvordan?) og gøre dette til PK Korrekt?
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.