Sorry, vergeten titel te geven, graag "[Mysql]Fotoalbum" van maken
Ik ben een fotoalbum aan het maken met php en mysql. Nu heb ik het zo dat mensen kunnen inloggen en dat deze ingelogde leden tot een bepaalde groep behoren. De groepen hebben indexnr 1 tm x. (Moet uitbreidbaar zijn). Nu wil ik zorgen dat van iedere foto ingesteld kan worden welke groepen toegang hebben tot deze groep. Als maar een enkele groep toegang zou hebben zou het eenvoudig zijn.
Dit geeft een lijst met alle foto's tot die groep. Hieruit kan gemakkelijk het aantal fotos bepaald worden zodat het aantal pagina's bekend is enz.
Maar nu wil ik dat meerdere groepen toegang hebben tot 1 foto, bijv. dat groep 2, 3, en 8 toegang hebben tot 1.jpg. Nu zijn er een aantal opties.
-Dmv serialize een lijst met groepen in te tabel zetten, dus onder groepid bv serialize(array(2,3,8)) wegschrijven. Het opzoeken is alleen niet makkelijk, je moet namelijk met php heel de lijst doorlopen en unserializen om uit te vinden of de foto bekeken mag worden, en het aantal foto's bepalen ed kost veel tijd.
-Een andere mogelijkheid is dat je iedere mogelijke combinatie van groepen een eigen nummer geeft en in een aparte tabel aangeeft welke groepen bij een bepaald nummer horen. Dit lijkt me niet geschikt omdat je voor 10 groepen al 1024 combinaties hebt. Bovendien werkt het uitzoeken van welke fotos bekeken mogen worden ook hier niet echt makkelijk.
-Tijdens het typen hiervan bedenk ik ineens een nieuwe optie, die nog het meest geschikt is. Elke foto gewoon meerdere keren in de lijst opnoemen voor iedere groep die toegang heeft, dus:
-En na het typen hiervan bedenk ik een nog betere optie, 2 tabellen:
Toch post ik dit verhaal om te zien of er misschien nog een betere optie is en daarnaast heb ik nog een ander probleem:
Op dit moment hebben de foto's gewone benamingen van de fotocamera: IMG1024.JPG oid en verder. Als een foto niet bekeken mag worden door bepaalde groepen is het toch vrij gemakkelijk de directory op te zoeken en de naam van de volgende foto te raden en zo te bekijken.
Om dit op te lossen zou je alle foto's random kunnen hernoemen en hier een script voor maken wat de namen in de db opslaat. Dit maakt nogal een zooitje van de directory.
Of met functies als file_get_contents($filename) de inhoud moeten echo'en. Ik heb nog geen optie geprobeerd omdat ik eerst wou kijken wat de beste optie is en of er misschien nog andere opties zijn.
Dus vooral, hoe kan ik het 2e probleem het beste aanpakken?
Ik ben een fotoalbum aan het maken met php en mysql. Nu heb ik het zo dat mensen kunnen inloggen en dat deze ingelogde leden tot een bepaalde groep behoren. De groepen hebben indexnr 1 tm x. (Moet uitbreidbaar zijn). Nu wil ik zorgen dat van iedere foto ingesteld kan worden welke groepen toegang hebben tot deze groep. Als maar een enkele groep toegang zou hebben zou het eenvoudig zijn.
code:
1
2
3
4
| idx | foto | groepid -----+--------+----------- 1 | 1.jpg | 2 ... | ... | ... |
PHP:
1
| mysql_query("SELECT * FROM fotos WHERE groepid=2") |
Dit geeft een lijst met alle foto's tot die groep. Hieruit kan gemakkelijk het aantal fotos bepaald worden zodat het aantal pagina's bekend is enz.
Maar nu wil ik dat meerdere groepen toegang hebben tot 1 foto, bijv. dat groep 2, 3, en 8 toegang hebben tot 1.jpg. Nu zijn er een aantal opties.
-Dmv serialize een lijst met groepen in te tabel zetten, dus onder groepid bv serialize(array(2,3,8)) wegschrijven. Het opzoeken is alleen niet makkelijk, je moet namelijk met php heel de lijst doorlopen en unserializen om uit te vinden of de foto bekeken mag worden, en het aantal foto's bepalen ed kost veel tijd.
-Een andere mogelijkheid is dat je iedere mogelijke combinatie van groepen een eigen nummer geeft en in een aparte tabel aangeeft welke groepen bij een bepaald nummer horen. Dit lijkt me niet geschikt omdat je voor 10 groepen al 1024 combinaties hebt. Bovendien werkt het uitzoeken van welke fotos bekeken mogen worden ook hier niet echt makkelijk.
-Tijdens het typen hiervan bedenk ik ineens een nieuwe optie, die nog het meest geschikt is. Elke foto gewoon meerdere keren in de lijst opnoemen voor iedere groep die toegang heeft, dus:
code:
1
2
3
4
5
6
7
| idx | foto | groepid -----+-------+----------- 1 | 1.jpg | 2 2 | 1.jpg | 3 3 | 1.jpg | 8 4 | 2.jpg | 5 ... | ... | ... |
-En na het typen hiervan bedenk ik een nog betere optie, 2 tabellen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| idx | foto -----+-------- 1 | 1.jpg 2 | 2.jpg ... | ... fotoidx | groep ---------+--------- 1 | 2 1 | 3 1 | 8 2 | 5 ... | ... |
Toch post ik dit verhaal om te zien of er misschien nog een betere optie is en daarnaast heb ik nog een ander probleem:
Op dit moment hebben de foto's gewone benamingen van de fotocamera: IMG1024.JPG oid en verder. Als een foto niet bekeken mag worden door bepaalde groepen is het toch vrij gemakkelijk de directory op te zoeken en de naam van de volgende foto te raden en zo te bekijken.
Om dit op te lossen zou je alle foto's random kunnen hernoemen en hier een script voor maken wat de namen in de db opslaat. Dit maakt nogal een zooitje van de directory.
Of met functies als file_get_contents($filename) de inhoud moeten echo'en. Ik heb nog geen optie geprobeerd omdat ik eerst wou kijken wat de beste optie is en of er misschien nog andere opties zijn.
Dus vooral, hoe kan ik het 2e probleem het beste aanpakken?