03. november 2005 - 14:48Der er
5 kommentarer og 1 løsning
Når relationer relaterer for meget
Ja jeg ved god overskriften er underlig, men det er den bedste måde for mig at anskueliggøre problemstillingen.
Jeg har en tabel med ansatte, disse ansatte har alle en funktion. Disse funktioner er sat i ren relation til en tabel indeholdende de de forskellige relationer.
I hovedtabellen har jeg altså en fremmednøgle, som referere til hovednøglen funktionsdatabasen.
Det er der jo ingen ben i - nu kommer grunden til min ansøgning om kvalificeret hjælp.
Hvad nu hvis den samme person har f.eks. 3 funktioner i firmaet. Så er jeg i min begrebsverden på den. Jeg har jo kun én fremmednøgle til at lave opslaget i funktionsdatabasen.
Svært at forklare - men for den der forstår spørgsmålet, deler jeg villigt ud af mine dyrbare point :-)
Med akut mangel på blandt andet IT- og Tech kompetencer er det nødvendigt at gøre op med traditionel uddannelsestænkning.
Slettet bruger
03. november 2005 - 14:57#1
Du skal nok lave en ny tabel, der indeholder dine ansattes funktioner. Hvis f.eks. dine ansatte har et unikt id i din hovedtabel og hver funktion har et unikt id vil fu f.eks. have 3 poster der sådan ud:
Forstår jeg det sådan at der ikke skal være en fremmednøgle til ansattes_funktioner, eller skal id i hovedtabel være fremmednøgle til en id i ansattes_funktioner ?
Synes godt om
Slettet bruger
03. november 2005 - 15:12#3
Kender ikke de udtryk du der bruger, da det er lang tid siden jeg sidst har arbejder i lige netop access.
Din hovedtabel (den med de ansatte) har en nøgle der entydigt identificerer hver medarbejder.
Denne nøgle skal være hovednøgle i ansattes_funktioner, SAMMEN med nøglen der kommer fra funktionstabellen. På denne måde vil du ikke kunne tilknytte samme funktion til en medarbejder mere end én gang, men du vil kunne give samme medarbejder flere funktioner, og lidt krypist: samme funktion til flere medarbejdere.
I fukntionstabellen skal hver funktion selvfølgelig også have sin egen unikke nøgle, hvilket kunne være et auto_increment id.
Men jeg syntes det er et problem at udtrække påster, eller relaterer dem, når de er separeret med komme. Hvordan skal jeg udtrække 2,3 i en tabel, hvor den entydige id er f.eks. id=2
du skal ikke have 2,3 i feltet! du skal have 2 i kolonnen ansat, og 3 i kolonnen funktion. Hvilket betyder at ansat 2 har funktionen 3, dvs at Hans er sælger. Og han er også Pedel og Sekretær.
Det kaldes en mange-til-mange relation, og du bruger begge felter i ansattes_funktioner som fremmednøgler. Du mangler så en primærnøgle, og du kan vælge at lave en kombineret nøgle med begge felter
Når du skal trække data ud, skal du kombinere alle 3 tabeller i en forespørgsel: - Feltet ansat i ansattes_funktioner peger på id i Hovedtabel - Feltet funktion i ansattes_funktioner peger på id i Funktionstabel
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.