Ik ben uit hobby een beetje aan het programmeren in php, nu heb ik daarbij een inlog systeem wat mooi funcioneert.
Nu zou ik echter graag willen weten hoe ik een systeem op kan zetten in mysql, wat een beetje lijkt op wiebetaalwat.nl
Hierbij krijg je als je inlogd alle lijsten te zien waarop je deelneemt, welke je vervolgens kunt openen.
wat ik kan bedenken is dit:
een table met de users (wat ik nu heb), vervolgens een kolom waarop in array vorm alle tabelen lijsten staan, deze uitlezen met php en daarmee een nieuwe sql statement maken.
Is er een betere mannier?
betreft de kolommmen nummer
het is de keuze om elke dag een nieuwe kolom toe te voegen of dat te doen met elke nieuwe user in een group
door elke dag een nieuwe rij te geven is het makkelijk om een aantal dagen te selecter en de user op te sommen
Haal je nu rijen en kolommen door elkaar? Elke dag een nieuwe kolom toevoegen is natuurlijk echt uit den boze.
Ik denk werkelijk dat je nog eens heel goed naar je model moet gaan kijken, want ik heb nu het idee dat het niet klopt wat je aan het proberen bent.
[quote="H de Rij op 27/03/2013 19:23:37"]
betreft de kolommmen nummer
het is de keuze om elke dag een nieuwe kolom toe te voegen of dat te doen met elke nieuwe user in een group
door elke dag een nieuwe rij te geven is het makkelijk om een aantal dagen te selecter en de user op te sommen
Haal je nu rijen en kolommen door elkaar? Elke dag een nieuwe kolom toevoegen is natuurlijk echt uit den boze.
Ik denk werkelijk dat je nog eens heel goed naar je model moet gaan kijken, want ik heb nu het idee dat het klopt wat je niet aan het proberen bent.
[/quote]
ik zeg dat bij een nieuwe user een nieuwe kolom wordt gecreerd, en elke dag een nieuwe rij.
kijk maar gewoon even bij mijn voorbeeld, dit wil ik in de mysql database doen.
[size=xsmall]Toevoeging op 27/03/2013 19:51:34:[/size]
A
{id, naam, pass}
[ 1, hans, 1234]
[ 2, jan, 4321]
B
{ date, 1, 2, 3}
[14-01, kaas, boter, appel]
[15-01, worst, melk, brood]
c
{ group, naam, waarde}
[kantoor, hans, 1]
[ thuis, hans, 2]
[kantoor, jan, 3]
Dan blijf je echt verkeerd bezig. Kolommen maak je 1 keer aan, niet bij nieuwe gegevens. Zij het een nieuwe dag, zij het een nieuwe user, je kolommen moeten onveranderd blijven.
heren en mogelijke dames,
ik probeer een mogelijk account systeem te maken, ik ben groen hierin maar help mij op weg.Tot nu toe heb ik nagenoeg alleen negatieve kritiek gekregen terwijl ik graag info en hulp wil.
Brand mij niet af zonder met alternatieven te komen.
Afbranden? Frank en ik proberen je alleen duidelijk te maken dat je op de verkeerde weg bent. Daarnaast heeft Frank al een enorme zet in de goede richting gegeven die je echter zo te zien niet oppakt. Dat is je goed recht natuurlijk, maar met afbranden heeft dat helemaal niets te maken.
Om het dan hopelijk nog wat duidelijker te maken.
Een database is geen spreadsheet. Je kan niet zonder meer kolommen als rijen gebruiken en andersom. Eigenlijk moet je een database zien als een verzameling entiteiten (in jouw geval gebruikers, lijsten en mogelijk nog iets waar ik de vinger niet op krijg). Elke enititeit heeft bepaalde eigenschappen (een gebruiker heeft een naam en een id bijvoorbeeld), dat zijn de kolommen in je tabellen. Voor elke entiteit heb je meerdere exemplaren (meerdere gebruikers Jan, Piet, Henk, etc), dat zijn de rijen in je tabellen. Vervolgens kun je relaties tussen de verschillende entiteiten gaan leggen wat op verschillende manieren kan.
1-op-1 relatie: Zo'n relatie leg je door in twee tabellen eenzelfde key te gebruiken, meestal gebeurt dit op id. Heb je bijvoorbeeld een user_id in de gebruikerstabel, dan kan je in een andere tabel diezelfde waarde voor de user_id gebruiken zodat duidelijk is bij welke user de gegevens horen.
1-op-veel relatie: In feite hetzelfde als 1-op-1, alleen heb je nu in de tweede tabel meerdere rijen die verwijzen naar dezelfde gebruiker. De waarde voor de user_id komt dus in meerdere rijen in de tweede tabel terug.
veel-op-veel relatie: In dit geval heb je vele links heen en weer. Bijvoorbeeld een gebruiker kan meerdere lijsten hebben, maar een lijst kan ook naar meerder gebruikers verwijzen. Voor dit type relatie heb je een koppeltabel nodig, omdat voor elke relatie tussen gebruiker en lijst je dit apart moet opslaan. Zo'n koppel tabel kent over het algemeen maar twee kolommen, user_id en list_id in dit geval. Elke rij in die tabel legt een relatie tussen een gebruiker en een lijst.
Als we dit gaan toepassen op jouw model (zo ver als ik het begrijp), dan zie ik dus een entiteit gebruiker, een entiteit lijst en iets wat je 'groepen' noemt. Wat hier echter het idee achter is ontgaat mij. Veel verder dan dit kan ik dus op dit moment niet gaan, omdat je probleemstelling mij niet duidelijk is.
Dus, wil je echte alternatieven zal je duidelijker moeten maken wat je nu wilt. Wat is nu een 'lijst', wat is een 'groep', wat is de relatie tussen de gebruikers, lijsten en groepen? Kan een gebruiker meerdere lijsten hebben? Of kan een lijst bestaan uit meerdere gebruikers?