Gå til innhold

Tilgansstyring av bildegalleri


Anbefalte innlegg

Jeg er i ferd med å lage en internettside ved hjelp av PHP (Javascript og Mysql).

 

Blant annet skal jeg ha et bildegalleri med bilder som skal organiseres i album og med brukere og grupper som har tilgang til "sine" bilder. Det skal altså fungere omtrent som på Facebook der man kan gi tilgang til et bilde både til grupper og til enkelte brukere.

 

Jeg har tenkt å bruke en MySql database, men jeg sliter litt med å finne en noenlunde ryddig design.

 

For eksempel lurer jeg på om jeg skal ha en tabell "tilganger" med to felt "bilde" og "bruker/gruppe". Dvs at både gruppetilgang og brukertilgang legges inn i samme tabell. Eller om det er bedre med én tabell for brukertilgang og én for gruppetilgang.

 

Noen forutsetninger:

 

- Tilgang skal i utgangspunktet gis på bildenivå slik at en bruker kan ha tilgang kun til enkelte bilder i et album.

 

- Hver bruker skal ha linker til alle album som brukeren har helt eller delvis tilgang til, men skal overhode ikke se de album hvor brukeren ikke har tilgang til noe bilde.

 

- For hvert bilde skal det sjekkes om en gitt bruker har tilgang til filen enten personlig, eller som medlem av en gruppe.

 

- Derssom en bruker har tilgang til et bilde både personlig og som medlem av en gruppe så må ikke den personlige tilgangen bli borte dersom brukeren blir fjernet fra gruppen.

 

- PHP koden må ikke bli altfor komplisert!

 

Veldig takknemlig for alle synspunkter, råd og vink.

Lenke til kommentar
Videoannonse
Annonse

Hvis du skulle valgt å ha en egen tabell for rights, hvor vær rad inneholder informasjon om hvor vidt en bruker har tilgang til et bilde, så blir den tabellen GIGANTISK. Noe som resulterer i sen lasting fra tabellen.

 

Men, om du velger å legge inn rights, pr bilde-rad i databasen (img_userrights og img_grouprights), så vil det nok ikke være et problem. Da kan en legge inn rettigheter, med bruker id, samt skille med pungtum, husker jeg rett. F. eks 1.4.5.9 (som er id til brukerene).

Du kan gjøre akkurat likt med grupperettighetene rundt bildet.

 

Dette gir også en simpel mulighet for å styre rettighetene rundt hele albumet. Da må selvfølgelig bildet innholde "kolonnen album_id".

 

Håper dette ga deg noe å tenke ut i fra.

Lenke til kommentar

Jeg er veldig fersk når det gjelder design av databaser og jeg lurer på en del ting i forhold til den foreslåtte løsningen:

- Såvidt jeg forstår så vil kollononen for rettigheter i bildetabellen lagre flere verdier i hvert felt? Er dette god praksis?

- I tillegg så vil det vell innebære at hver gang man laster bildetabellen så blir også alle tilgangsdata lastet. Vil ikke det føre ti redusert ytelse dersom tabellen skal brukes i operasjoner hvor brukertilganger er irrellevante?

- I steden for to laaange tabeller med lite informasjon på hver linje får man en tabell med masser av informasjon på hver linje. Er det virkelig mer effektivt?

 

For øvrig lurer jeg på når størrelsen på databasen blir et problem. Det dreier seg tross alt ikke om et nytt MySpace, men snarere et avansert familiealbum. Når vil egentlig størrelsen på databasen bli et problem?

 

Uansett så lurer jeg på om det blir unødvendig komplissert å styre rettighetene på brukernivå. Jeg vil formode at i de fleste tilfeller vil rettighetene være knyttet til grupper. Kanskje retteighetene kan styres i en tabell med feltene fil og gruppe og en tilleggstabell for unntak?

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...