Hej alle
Jeg har valgt at poste dette spørgsmål i både database-gruppen og
PHP-gruppen, da det vedrører begge.
Jeg sidder med tre tabeller i samme MySQL database (5.0.22).
1. Den første tabel indeholder et kartotek over personer med
tilhørende personoplysninger og et person-id.
2. Den anden tabel indeholder oplysninger om forskellige udvalg, som de
førnævnte personer kan være medlem af.
3. Hver person kan være medlem af flere udvalg, hvert udvalg kan have
flere medlemmer, men hver person kan ikke være med i samme udvalg mere
end "en gang ad gangen". Dette organiseres derfor i den sidste tabel,
hvor hver række består af et person-id og et udvalgs-id.
Det er såmænd fint nok. Dataene skal præsenteres i PHP (5.1.4), og
man skal kunne "gøre forskellige ting med dem", så jeg tænkte at jeg
ville lave en klasse for personer og en klasse for udvalg, som jeg så
kan benytte mig af.
Her kommer så problemerne:
* Når jeg udskriver/viser informationerne for et udvalg, vil jeg gerne
sammen med udvalget have listet de personer, som er i udvalget, samt
deres informationer (kort).
* Når jeg udskriver informationerne for en person (langt) vil jeg
gerne kunne se hvilke udvalg, personen er med i - i alt fald udvalgets
navn og hjemmesideadresse, som er gemt i udvalgs-tabellen.
Problem: Det kan jeg ikke finde ud af på en "elegant" måde
Se evt. resultatet af min uelegante løsning her:
http://fdf.dk/landsdel1/leder/index.php
(Klikker man på navnet, får man personoplysningerne samt hvilke
udvalg personen er med i).
Hvordan stiller jeg dette op rent praktisk?
Er der en "smart" måde, så jeg undgår at lave en masse forskellige
SQL-søgninger i samme script, men kan holde det til nogle få? (af
performance-mæssige hensyn).
Skal selve link-tabellen laves som et slags objekt også? (og hvordan?)
Og kan det i det hele taget laves så generelt, at jeg kan holde disse
klasser adskilt, så jeg ikke skal rette i dem alle, hvis jeg ændrer
noget i den ene?
Evt. kunne jeg også godt tænke mig at have en klasse for sig med
database-adgangen (mysql_connect, osv.), men det kan vel vente til
senere.
Jeg har søgt på Google for at finde svar, men uden held. Hvis nogen
kender et link, kan det også fint bruges - vil tro at problematikken
er generel og løst før.
Mvh Jesper
--
http://fdf.dk/landsdel1/