[PHP-MySQL] meerdere eigenschappen voor meerdere pakketten

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi,

Ik ben nu bezig met het schrijven van mijn eigen admin-software voor hosters. Nu gaat dat allemaal goed, maar ik zit toch met een probleempje.

Ik heb nu een tabel met een aantal hostingpakketten. Die hebben een vaste grootte bijv. 10MB. Nu wil ik per pakket een aantal extra's kunnen toevoegen. Bijvoorbeeld 5MB extra voor 5 euro.

Deze extra's moeten dus voor sommige pakketten wel gelden en voor andere niet. Hoe moet ik dit nu in MySQL gaan verwerken?

Ik kan natuurlijk in mijn pakket-records een veld extras maken en dan de ID's van de extra's met een | ertussen invoeren, of ik kan een tabel maken met "koppelingen" tussen de extra's en pakketten, dus een koppelingsid, een pakket een extra.

Hoe kan ik dit het beste aanpakken?

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Die extra tabel is beter, dat is beter genormaliseerd.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
dus dan heb ik een pakket-record:
Id=1 naam=superpakket
en dan een xtra record:
Id=1 naam=extra dingetje
en een koppelings-record:
Id=1 pakketID=1 extraID=1

Als ik dan alles extra's bij een pakket wil moet ik dus alle extraID's selecten waar pakketID =1 en dan in PHP een loopje maken en alle extra's gaan querien? (met WHERE id=1 or id=3 etc..) ??

Acties:
  • 0 Henk 'm!

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Als ik dan alles extra's bij een pakket wil moet ik dus alle extraID's selecten waar pakketID =1 en dan in PHP een loopje maken en alle extra's gaan querien? (met WHERE id=1 or id=3 etc..) ??
Je kan in je query gewoon gebruik maken van een LEFT (OUTER) JOIN. Je selecteerd dan alle records uit de tabel pakketten en eventuele gekoppelde records (met de eigenschappen dus) uit een andere tabel. :)

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Voorbeeldje:
tabel pakketten: id-naam
tabel koppel: id-pakketid-extraid
tabel extra's: id-omschrijving

Met Joins kun je de gegevens er uit halen: pseudo zal het iets worden als:
SELECT fields FROM pakketten LEFT OUTER JOIN koppel ON pakketten.id=koppel.pakketid INNER JOIN extra ON extra.id=koppel.extraid

[ Voor 3% gewijzigd door djluc op 09-12-2003 17:51 ]