Gå til innhold

Anbefalte innlegg

Hei folkens,

 

Jeg holder på å sette opp en ganske diger database hvor hver person skal kunne ha flere roller. Med rolle mener jeg for eksempel "Student", "Professor", "Forskningsassistent", "Avdelingsleder" osv.

 

Poenget er at hver bruker skal kunne ha flere roller, altså en bruker som er "Student", skal også kunne være "Forskningsassistent", og en annen bruker som er "Professor" også skal kunne være "Avdelingsleder".

 

For ordens skyld, har jeg splittet databasen min opp i flere deler, hvor jeg har en egen tabell med kun roller, altså:

rolleid=1|rolle="Student"
rolleid=2|rolle="Forskningsassistent"
rolleid=3|rolle="Professor"
rolleid=4|rolle="Avdelingsleder"
[...]

og en annen tabell som inneholder brukerdata:

brukerid=1|navn="Per Persen"|rolle="1"
brukerid=2|navn="Kåre Kåresen"|rolle="2"
brukerid=3|navn="Frode Frodesen"|rolle="3"
brukerid=4|navn="Kjell Kjellsen"|rolle="4"

 

Det jeg har litt problemer med å få til er hvis bruker1, som er student - også skal kunne være forskningsassistent.. Går det an å legge til et array for rollefeltet slik at:

rolle[0]=1
rolle[1]=2

??

I såfall, vet noen hvordan det gjøres?

 

Vet ikke om jeg klarte å formulere dette helt korrekt, men hvis dere ikke forstår hva jeg vil fram til, spør ivei, og jeg skal prøve å forklare bedre.

 

På forhånd, takk. :thumbup:

Endret av v3g4rd
Lenke til kommentar
Videoannonse
Annonse
Du bør ha en egen tabell for knytning mellom person og rolle, all den tid du har en mange til mange relasjon her.

9569855[/snapback]

Kan du utdype det svaret ditt litt? Vet ikke helt om jeg forstår hva du mener..

9569867[/snapback]

Du har en tabell med referanse til hver av de to andre tabellene, og så setter du inn en rad i denne for hver kobling. F eks Person 3 mot rolle 4. Ikke for å være frekk, men dette er MEGET grunnleggende databaseteori, så jeg drister meg også til å nevne at du skal bruke databaseserveren for å knytte sammen dataene når du gjør utvalg, da f eks med bruk av inner join og where-clause. Hvis dette skulle være helt ukjent for deg, så vil en introduksjonsbok til databaser klart være å anbefale.

Lenke til kommentar
Hvor mange forskjellige roller kan en persjon ha da?

9573170[/snapback]

Akkuat det bør jo ikke ha noe å si...

 

Brukere

--------

Brukerid

navn

 

 

Brukere_X_Titler

------------------

fk_brukerid

fk_tittelid

 

 

Titler

------

tittelid

tittel

 

Da kan du knytte så mange titler til en person du bare måtte ønske, på samme måte knytte så mange personer du bare vil mot en tittel.

Lenke til kommentar
Du har en tabell med referanse til hver av de to andre tabellene, og så setter du inn en rad i denne for hver kobling. F eks Person 3 mot rolle 4. Ikke for å være frekk, men dette er MEGET grunnleggende databaseteori, så jeg drister meg også til å nevne at du skal bruke databaseserveren for å knytte sammen dataene når du gjør utvalg, da f eks med bruk av inner join og where-clause. Hvis dette skulle være helt ukjent for deg, så vil en introduksjonsbok til databaser klart være å anbefale.

9569955[/snapback]

Du har rett i at jeg er ganske fersk innen databaser, da jeg egentlig holder på å lære meg php og mysql ved å jobbe med et prosjekt og prøve meg frem.

Jeg er derimot delvis kjent med mysql-syntax, og benytter blant annet WHERE for å koble sammen to av tabellene mine, slik at resultatet etter spørringen blir f.eks:

"Per Persen"|"Student" fremfor "Per Persen"|1.

 

Jeg bruker boka "Beginning PHP5, Apache, and MySQL Web Development 2005" som lærebok, men jeg har ikke funnet noe eksempel som viser hvordan det lar seg gjøre å føye på flere roller pr. bruker.

 

Uansett, skal jeg fundere litt på svarene deres, og prøve meg litt til for å se om jeg får det til. Takk for svar! :cool:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...