[denkwerk] hoe t beste opslaan in db
ik ben een website aan het maken waarbij leden kunnen inloggen en berichtjes kunnen posten. Nu zou ik graag een onderdeel toevegen dat ze kunnen kiezen uit een lijstje. Net zoals bijv. merken op hyves.nl
Ik zat dus te denken, kan ik het beste bij merken aangeven welke gebruikers erbij horen of bij gebruiker welke merken?
En hoe kan ik dit opslaan? Ivm. meerdere merken per persoon.
Ik ben nog niet zo lang bezig met databases dus hopelijk heeft iemand met ervaring een simpel antwoord.
Greetz rutje1
Wat bedoel je juist kan je er iets bijmaken ?
Ik wil 5 merken op mijn site hebben:
Merk1
Merk2
Merk3
Merk4
Merk5
De bedoeling is dat de leden/gebruikers in hun profiel hun favoriete merken laten zien. Dat kan er géén zijn, maar het kunnen er ook vijf zijn.
Maar hoe kan ik het merk het beste aan de gebruiker koppelen?
In de tabel merken de gebruikers aangeven? (dit zouden dus alle gebruikers kunnen zijn)
Of in de tabel gebruikers de merken aangeven? (dit kunnen dan dus meerdere merken zijn)
Het is dezelf manier zoals ook bijv. de spots bij hyves: Hyves van Barry paf
Dat is dus wat ik zou willen, een lijst maken op je profiel
Hopelijk is het zo wat duidelijker
Je gaat dus nooit een onbekend aantal extra eigenschappen/voorkeuren in een tabel erbij proppen !!
Je moet hier dus een extra tabel voor gebruiken.
dit gelezen maar het is helaas nog niet helemaal duidelijk.
Ik zou dan dus een extra tabel aanmaken. Bijv.
Merken.
Wat moet ik in die tabel stoppen?
Hoe kan ik de gebruikers aan de merken koppelen?
Ok, ik heb Ik zou dan dus een extra tabel aanmaken. Bijv.
Merken.
Wat moet ik in die tabel stoppen?
Hoe kan ik de gebruikers aan de merken koppelen?
merk_id - merknaam
1 - Shell
2 - Adidas
users
user_id - username - password - etc..
[Wat je al hebt]
users_merken
user_id - merk_id
2 - 1
Je zou ook cild-parent kunnen gebruiken.
en al zijn het dan 2 of meer merken? kan dan in het veld merk_id meerdere merken worden gezet?
Edit:
ook de koppel tabel merken_users gebruik je 'normaal' !! Dus voor elke koppeling 1 record !!
ook de koppel tabel merken_users gebruik je 'normaal' !! Dus voor elke koppeling 1 record !!
Gewijzigd op 01/01/1970 01:00:00 door - Roland -
In datamodellen moet je gewoon kijken naar de relatie. Je hebt hier gebruikers en merken. Een gebruiker kan meer dan 1 merk hebben, en een merk kan door meer gebruikers aangeklikt worden. Zo'n type relatie heet een veel op veel relatie en die zijn niet toegestaan.
De oplossing (zoals aangegeven hierboven) is om een zogenmaamd koppeltabel te maken waarin je een id van een gebruiker aan een id van een merk koppelt. Zo voorkom je dat je dezelfde gebruikersnaam bij elk merk op zou moeten slaan, of dezelfde merknaam vijf keer, als alle gebruikers hem aan zouden klikken.
users_merken
1 - 1
1 - 2
User 1 heeft nu merk 1 en 2 (Shell en Adidas)
Dus als je de merken van een user wil kan je (grofweg) SELECT * FROM users_merken WHERE user_id = 1
Je moet in het echt een subquery (of join) maken, maar zo moet je het zien.
Super!