Oprettet tir. d. 21. april 2009 kl. 22:55:12

psycosoft-funware
psycosoft-funware (17.254 point. Point ude: 100)
www.code-kungfu.com

fitnesscenter booking system - database spm

Hej eksperter :)

Jeg sidder her og er i gang med at lave et booking system til et lille fitness center. (backend er joomla cms)

Der er i midlertid et spørgsmål jeg ikke kan finde svar på.

I min database har jeg en tabel hvor jeg gemmer alle hold; den ser sådan ud:
id | holdtype | instruktør | dato | tidspunkt | maxtilmeldte |

her kommer så mit spørgsmål; hvilken måde vil i anbefale at holde styr på hvilke brugere der er meldt til en givent hold?

det skal lige siges at jeg ikke har arbejdet særligt meget med databaser, deraf mit spm.

på forhånd tak :)

./psycosoft-funware :)

Skrevet ons. d. 22. april 2009 kl. 09:34:33| #1

lakridserne
lakridserne (8.063 point)
w8hosting.com
Lav en ekstra tabel: tilmeldinger:

id | bruger_id | hold_id

Jeg vil sætte en SQL-sætning ind (med JOIN) senere.

/lakridserne

Skrevet ons. d. 22. april 2009 kl. 09:53:43| #2

lakridserne
lakridserne (8.063 point)
w8hosting.com
Brug det på denne måde:

SELECT tabel.kolonne, tabel2.kolonne FROM tabel JOIN tabel2 ON tabel.hold_id=tabel2.hold_id ORDER BY tabel.kolonne

/lakridserne

PS: Bare skriv hvis jeg skriver så du ikke forstår det.

Skrevet ons. d. 22. april 2009 kl. 11:29:30| #3

Det skal lige sige at det er en MySQL base med MyIsam tabeller;

jeg spurgte en kammerat der har arbejdet noget mere med baser end jeg har, han snakkede om at jeg kunne bruge foreign keys. jeg undersøgte dette og kom frem til at MyIsam ikke understøtter dette men der i mod InnoDB.

>>lakridserne: jeg har lidt svært ved at gennemskue din anden post.
er der nogen fordele ved at bruge join frem for foreign keys?

./psycosoft-funware :)

Skrevet ons. d. 22. april 2009 kl. 12:09:23| #4

lakridserne
lakridserne (8.063 point)
w8hosting.com
Nej nu var det bare den løsning jeg ville vælge.
Vidste faktisk ikke der var noget der hedder forgein keys - men undersøgte det lige...

/lakridserne

Skrevet ons. d. 22. april 2009 kl. 12:20:48| #5

dkfire
dkfire (26.216 point)
Join og forgein keys er to forskellige ting, de har intet med hinanden at gøre.

forgein keys er til opsætning af din kolonne i tabel, hvor join bliver brugt i en sql sætning.

Skrevet ons. d. 22. april 2009 kl. 19:30:45| #6

lakridserne
lakridserne (8.063 point)
w8hosting.com
Tak dkfire - der kan man se hvor lidt man egentlig ved...

/lakridserne

Skrevet tor. d. 23. april 2009 kl. 02:07:17| #7

hvis jeg har 2 MyISAM tabeller, en med alle mine brugere og en der holder på mine hold.
hvordan binder jeg så smartest user_id og event_id sammen i en InnoDB tabel med foreign keys rent php-kode messigt?

jeg læste på hvordan man sætter foreign keys op igennem phpMyAdmin, men jeg kan ikke helt gennemskue hvordan jeg så får det til at fungere rent praktisk :)

./psycosoft-funware :)

Skrevet tor. d. 23. april 2009 kl. 09:39:30| #8

lakridserne
lakridserne (8.063 point)
w8hosting.com
så skal du bruge join, som dkfire skrev om

/lakridserne

Skrevet ons. d. 29. april 2009 kl. 18:53:53| #9

nu blev jeg da en del klogere :)

kan i begge ikke ligge et svar så vi kan få uddelt nogle point?

./psycosoft-funware :)

Skrevet ons. d. 29. april 2009 kl. 20:28:09| #10


Skrevet ons. d. 29. april 2009 kl. 20:39:02| #11


Skrevet ons. d. 29. april 2009 kl. 20:51:39| #12

arne_v
arne_v (1.005.618 point)
Og hvis jeg maa have lov til at boeje det i neon.

JOIN bruges i SELECT til at flette to tabeller sammen.

FOREIGN KEY bruges i CREATE TABLE til at definere en sammehaeng mellem tabeller. En FOREIGN KEY vil normalt betyde at de 2 tabeller skal joines i forskelleige queries.

Det primaere formaal med FOREIGN KEY er at sikre REFERENTIEL INTEGRITET d.v.s. at hvis man peger paa noget saa skal det man peger paa eksistere.

Det klassiske eksempel er nok postnumre og by.

adresse
-------
id
vej
nummer
postnr

postdistrikt
------------
postnr
by

Her vil man jo typisk lave en JOIN som:

SELECT * FROM adresse JOIN postdistrikt ON adresse.postnr=postdistrikt.postnr

Men lad os kigge paa foelgende INSERT saetninger:

INSERT INTO postdistrikt VALUES(8000, 'Aarhus C');
INSERT INTO postdistrikt VALUES(7100, 'Vejle');
INSERT INTO postdistrikt VALUES(6000, 'Kolding');
INSERT INTO adresse VALUES(1, 'Avej', '1. th', 8000);
INSERT INTO adresse VALUES(2, 'Bvej', '2. tvh', 6000);
INSERT INTO adresse VALUES(3, 'Cvej', '3. mf', 80000);

Uden brug af FOREIGN KEYS saa virker de INSERT fint, men adresse #3 kommer ikke med i SELECT output fordi postnummer er skrevet forkert.

Hvis man har defineret en FOREIGN KEY fra adresse.postnr til postdistrikt.postnr, saa vil den forkerte INSERT give en fejl.

Og det er altid godt at forhindre forkerte data i at komme ind i ens database.

Og som naevnt i MySQL er det kun InnoDB tabeller som har support for FOREIGN KEYS.

Skrevet ons. d. 29. april 2009 kl. 20:51:54| #13

arne_v
arne_v (1.005.618 point)
Og hvis jeg maa have lov til at boeje det i neon.

JOIN bruges i SELECT til at flette to tabeller sammen.

FOREIGN KEY bruges i CREATE TABLE til at definere en sammehaeng mellem tabeller. En FOREIGN KEY vil normalt betyde at de 2 tabeller skal joines i forskelleige queries.

Det primaere formaal med FOREIGN KEY er at sikre REFERENTIEL INTEGRITET d.v.s. at hvis man peger paa noget saa skal det man peger paa eksistere.

Det klassiske eksempel er nok postnumre og by.

adresse
-------
id
vej
nummer
postnr

postdistrikt
------------
postnr
by

Her vil man jo typisk lave en JOIN som:

SELECT * FROM adresse JOIN postdistrikt ON adresse.postnr=postdistrikt.postnr

Men lad os kigge paa foelgende INSERT saetninger:

INSERT INTO postdistrikt VALUES(8000, 'Aarhus C');
INSERT INTO postdistrikt VALUES(7100, 'Vejle');
INSERT INTO postdistrikt VALUES(6000, 'Kolding');
INSERT INTO adresse VALUES(1, 'Avej', '1. th', 8000);
INSERT INTO adresse VALUES(2, 'Bvej', '2. tvh', 6000);
INSERT INTO adresse VALUES(3, 'Cvej', '3. mf', 80000);

Uden brug af FOREIGN KEYS saa virker de INSERT fint, men adresse #3 kommer ikke med i SELECT output fordi postnummer er skrevet forkert.

Hvis man har defineret en FOREIGN KEY fra adresse.postnr til postdistrikt.postnr, saa vil den forkerte INSERT give en fejl.

Og det er altid godt at forhindre forkerte data i at komme ind i ens database.

Og som naevnt i MySQL er det kun InnoDB tabeller som har support for FOREIGN KEYS.

Skrevet ons. d. 29. april 2009 kl. 20:54:24| #14

arne_v
arne_v (1.005.618 point)
Undskyld dobbeltpost.

Skrevet ons. d. 29. april 2009 kl. 23:24:14| #15

>>arne_v: fantastisk det satte lige flaget på kransekagen :D
det er faktisk det jeg havde lidt svært ved at forstå ved de tutorials jeg havde fat i, men nu faldt det hele på plads. takker :)
du skal være velkommen til at ligge et svar, da dette også burde premieres med lidt point :)


>>dkfire: du postede kun en kommentar, så det bliver lidt svært at uddele point til denne :)

Skrevet tor. d. 30. april 2009 kl. 04:00:25| #16


Skrevet lør. d. 02. maj 2009 kl. 12:07:59| #17

>>dkfire: kan du ikke lægge et svar så vi kan få lukket dette spm? :)

./psycosoft-funware :)

Skrevet søn. d. 05. juli 2009 kl. 19:52:35| #18

arne_v
arne_v (1.005.618 point)
dkfire ?

Skrevet søn. d. 05. juli 2009 kl. 21:45:18| #19

dkfire
dkfire (26.216 point)
Jo det kan jeg vel godt.
Rent tilfælde jeg kiggede forbi.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Ville ikke tildele at upload det til database eller komme...

Oprettet den 10. februar 2012 kl. 21.23
tobrukDk giver 15 point for svar | Giv et svar »

HTTP Post XML og modtag svar

Oprettet den 10. februar 2012 kl. 17.55
mrkaynex giver 200 point for svar | Giv et svar »

Inspion Economy søger en dygtig programmør, som kan...

Oprettet den 10. februar 2012 kl. 16.09
Kathja giver 15 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Her er fem sjove danske websider du skal kende

Trænger dine lattermuskler til en omgang fitness på dansk? Vi viser vej til fem websider fyldt med humor og vanvittig satire.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du snart hente Windows 8

Den nye offentlige betaversion af Windows 8 er klar i denne måned.


Nyheder fra Computerworld

Teaser billede

Måske snart slut med Androids helt store problem

Android-platformen har længe været plaget af et særligt problem. Men måske er problemet nu ved at være elimineret.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger