19. marts 2003 - 10:27Der er
13 kommentarer og 1 løsning
Tabeller
I forbindelse med opbygningen af et intranet, sidder jeg og kigger lidt på tabelopbygningen i en database i forhold til login og øvrig funtktionalitet.
Der vil umiddelbart være 3 typer brugere muligvis flere senere: Bruger Superbruger Administrator
Vil det så være hensigtsmæssigt, at lave en tabel til hver brugertype eller have én brugertabel med en kolonne der angiver typen. Umiddelbart skal man løbe flere tabeller igennem ved login, hvis man laver en tabel for hver brugertype, men hver bruger kan jo så identificeres vha et unikt ID f.eks Bid, Sid eller Aid.....
Det kunne de for så vidt også med én brugertabel, da loginID vil være unikt, men der skal stadig tages højde for typen..
Det er også med henblik på udvidelse, jeg stener lidt over det...
Du kan nøjes med een tabel da dit brugerid er unik. Hvis du senere vil lave flere typer, så er en brugertype tabel en god ide. Jeg formoder at der er ikke noget en Bruger kan som en SuperBruger ikke kan osv ? Eller skal du kunne autorisere hver bruger til noget forskelligt ?
hsg >> Ja, en bruger kan ikke alt en superbruger kan osv. Så jeg tænkte, hvis man laver en brugertabel for hver type kan man jo relativt simpelt lægge boget sikkerhed på i basen...
Hvis nu fx. typen var angivet ved at tal 0=Administrator, 1=SuperBruger osv så kan du jo styre hvad der må vises afhængigt af brugerens niveau. Fx. <? if ($brugerNiveau <= 1) { ?> vis et link kun for superbrugere og administratorer <? } ?>
Den beskrivelse du pt. har lagt ud er et fint udgangspunkt. Du har login, kodeord og brugertype, hvilket er nok til at styre hvad de enkelte brugere må se. Resten - navn osv - er information hvis der er behov for det. Noget specielt du leder efter?
Lad os antage, der ikke kommer flere brugertyper - alle typer skal defineres nu - vil det så stadig være den bedste løsning med én brugertabel + brugertypetabel???
Det afhænger af hvormeget information du lægger i din brugertype. Hvis det bare er et navn så kan man vel nøjes med een tabel og så en intern global tabel i det sprog du vil kode i.
Det eneste med brugertypen er at den ene kan mere end den anden og det virker rigtig godt, med brugertypeid, MEN hvorfor så ikke lave én brugertabel sådan:
Bruger ------ bid (PK) login kodeord navn type
Så er det kun en tabel, man skal hente oplysninger i og man vil stadig kunne styre, hvad de har mulighed for at se?
Helt fint. Som sagt hvis du ved du ikke får flere brugertyper, så glem den anden tabel. Jeg vil så sige, at du får ikke det store overhead ved at have 2 da antallet af brugertyper sikkert er lavt. OG selvom du udvider antallet så skal du op på et ret så stort antal før tabel nr 2 bliver aktuel. Så een tabel - som du lige har beskrevet - er nok.
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.