Foreslag til database design, grundlæggende tabeller
Hej EksperterJeg arbejder i Access 2010. Jeg er ikke sikker på at nedenstående tabeldesign er fornuftigt til min database, så jeg ville høre om der er nogen forslag til at gøre det, måske på en anden måde. Det en længere omgang så det svært at gøre det kort.
Jeg starter ud med 2 tabeller:
TBLbrugere med nedenstående felter:
brugerID (autonummering, primær nøgle)
brugerfuldenavn (tekst)
brugerrolle (tal)
TBLroller med nedenstående felter:
rolleID (automummering, primær nøgle)
rollenavn (tekst)
Jeg går så tilbage til TBLbrugere og laver et opslag i feltet brugerrolle fra TBLroller med relationstypen en til mange. Nu kan jeg oprette en bruger og vælge hvilken rolle bruger skal have i feltet brugerrolle. På denne måde kan der ligger mange brugere i TBLbrugere, og mange roller i TBLroller, men hver bruger kan kun tildeles en rolle i TBLbrugere. Det fint nok.
Det ikke kun brugere der skal registeres for en rolle, der skal også registreres en eller flere grupper til rollen, dvs. at en bruger har kun en rolle, men den rolle som er tildelt bruger kan have mange grupper tilknyttet (mange til mange). Jeg opretter så 2 nye tabeller.
TBLgrupper med nedenstående felter:
gruppeid (autonummering, primær nøgle)
gruppenavn (tekst)
TBLrolledata med nedenstående felter:
id (autonummering)
rolle (tal)
gruppe (tal)
Jeg går så tilbage til TBLdata og laver et opslag i feltet rolle fra TBLroller, og et opslag i feltet gruppe fra TBLgrupper. Til sidst går ind i relationsvinduet og sætter dataintegritet på alle de relaterede tabeller, og det ser fint ud. TBLdata er som jeg ser det en mange til mange tabel som indeholder data fra TBLroller og TBLgrupper, men ikke fra TBLbrugere?
Ovenstående design "skaber" nu en dobbelt relation mod TBroller i feltet rolleid (brugerrolle fra TBLbrugere, og rolle fra TBLdata). Når jeg åbner TBLroller skal jeg vælge hvilket under dataark jeg vil vise, og det i grunden fair nok da jeg har en dobbelt relation til samme felt i TBLroller. Alt ser ud til at virke, relationerne virker efter hensigten etc.
Det jeg ikke er sikker på er! Er det ok at lave på denne måde, er databasen normaliseret, er det "god tone" at gøre det på denne måde med en dobbelt relation. Kommentarer/forslag modtages med kyshånd :-)
Hilsen
Anders.