Multidesk.be » Forums » PHP » [SQL/PHP] lidgelden gezinsleden (verplaatst)

  • Pagina
  • 1 van 1
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door Kilian op woensdag 4 augustus 2010 om 10:23:54.
Kilian heeft nog geen avatar toegevoegd
Multiviteit: 1629
Ik zit met een klein logisch probleempje.
Voor het ledensysteem van de club dat ik aan het maken ben wil ik een automatische berekening van het lidgeld. Nu lijkt dit op zich niet zo moeilijk, ware het niet dat het zo is geregeld dat als je een gezinslid in de club hebt je korting krijgt.

Het zit dus zo:
1ste lid: € 135.-
2de lid: € 85.-
3de lid: € 55.-
4de lid: gratis
5de lid: gratis
...

Ik moet dus bij ieder lid kijken of dit al dan niet een gezinslid in de club heeft (dit lukt wel, door het adres na te kijken) en kijken het hoeveelste lid van dit gezin het is.
Mijn eerste gedacht was om gewoon het eerste lid van het gezin te nemen en daar het lidgeld voor het hele gezin bij op te slaan. Het nadeel is dan wel dat alle andere gezinsleden € 0 achter hun naam hebben staan en dit niet zo mooi is voor de boekhouding.

Hetgeen ik tijdens het typen van dit bericht in mijn hoofd krijg als idee is om een array aan te maken met daarin het adres en bij ieder lid kijken of de index met zijn adres al bestaat. Als waarde zet ik dan het aantal gezinsleden en op die manier splits ik het bedrag. Is dit efficiŽnt?

Opmerking van de crew

Ik heb je bericht even in de correcte categorie geplaatst.
Wheeldigger
^ Reactie #1 geschreven door Simon op vrijdag 6 augustus 2010 om 12:26:56.
Simon's avatar
Multiviteit: 3742
En waarom niet gewoon het lidgeld bij elk lid apart in de database opslaan? Als je toch de database moet overlopen om te kijken of er al leden van hetzelfde gezin zijn kan je toch gewoon het juiste getal toevoegen aan dit lid zelf en dus niet optellen bij het eerste lid. Of zie ik dat verkeerd?
^ Reactie #2 geschreven door Kilian op vrijdag 6 augustus 2010 om 15:10:18.
Kilian heeft nog geen avatar toegevoegd
Multiviteit: 1629
Op zich maakt het me niet uit of ik nu inde tabel van de leden schrijf of een aparte tabel maak voor de lidgelden.
Het punt hierin is dat ik moet controleren of er op hetzelfde adres iemand woont die ook lid is. Als dit zo is dan moet het tweede lid € 85 betalen. Het eerste lid blijft echter op € 135.

Ik moet dus lijken of ik al iemand gehad heb die op hetzelfde adres woont.
^ Reactie #3 geschreven door SMG op vrijdag 6 augustus 2010 om 18:05:20.
SMG's avatar
Multiviteit: 12000
Moderator
Misschien een wat ongewone aanpak maar waarom geen klanten bijhouden aan de uniekheid van hun adres? Kan je een 1 op veel relatief hebben tussen adres en klanten. Kan je gemakkelijk zien hoeveel klanten er op dat adres wonen.
^ Reactie #4 geschreven door StefDC op zaterdag 7 augustus 2010 om 10:24:11.
StefDC's avatar
Multiviteit: 200
Je moet deze gegevensverzameling even 'normaliseren'.

Inventariseer je gegevens:

Leden met hun naam, voornaam, geboortedatum (veronderstel ik), adres, ..
Meerdere leden kunnen op hetzelfde adres wonen, dus moet het attribuut adres afgesplitst worden naar een entiteit 'Adres' (=tabel). Dit voorkomt dat hetzelfde adres meerdere malen in de entiteit 'Lid' (=tabel) opgenomen zit, met alle rsisco's zoals (tik)fouten, en de uiteindelijke fysieke grootte van de tabel Lid.

Dus we hebben nu 2 entiteiten / tabellen

LID (LidNr, naam, voornaam, geboortedatum, ..., AdresNr)
Gebruik hier een LidNr als key, liefst geen adres, denk maar aan een verhuis.
Dan zit je plots met 6 leden te schrappen en zes nieuwe te maken.

ADRES (AdresNr, straat, nummer, postcode, gemeente, provincie, land)

Hier heb ik een attribuut 'AdresNr' ingevoerd om elk ADRES een unieke key te geven en die dan te linken aan de entiteit LID

dan nog de lidgelden en ja een derde entiteit / entiteit
LIDGELD (LidNr, AdresNr, lidgeld, datum betaald, ..)

Deze tabel LIDGELD kan je gebruiken om te kijk hoeveel leden er met hetzelfde AdresNr al betaald hebben en hoeveel. Zie deze quote

Dixit

Dixit Kilian op 04/08/2010 10:23:54:
Het zit dus zo:
1ste lid: € 135.-
2de lid: € 85.-
3de lid: € 55.-
4de lid: gratis
5de lid: gratis
...


Dit verandert wellicht wat aan je programmacode maar qua DB-ontwerp gaat dit de goede richting uit.
^ Reactie #5 geschreven door Kilian op zaterdag 7 augustus 2010 om 11:13:27.
Kilian heeft nog geen avatar toegevoegd
Multiviteit: 1629
En op vlak van inschrijving? Hoe regel jij dat?

Ik denk dat ik moeilijk een dropdown lijst van alle adressen kan laten zien?
^ Reactie #6 geschreven door Simon op zondag 8 augustus 2010 om 15:40:38.
Simon's avatar
Multiviteit: 3742
Kijken of het adres al voorkomt in de tabel is natuurlijk ook gevaarlijk voor typefouten.

Een mogelijke oplossing kan het volgende zijn. Als iemand van een bepaald gezin al ingeschreven is, kunnen andere leden korting krijgen. Maar dit kan enkel als ze zich inschrijven via hun al ingeschreven gezinslid.
  • Pagina
  • 1 van 1

Snel-antwoordformulier
Toon uitgebreid antwoordformulier Bericht nalezen Bericht plaatsen