Tags maken met database

Status
Niet open voor verdere reacties.

ElsyV

Gebruiker
Lid geworden
7 sep 2007
Berichten
218
Sommige websites werken met "tags".
Boven een link staan deze tags dan vaak ook getoond en als je er op klikt krijg je alle linken te zien die iets met die tag te maken hebben.

Hoe kun je dit het beste in je database aanleggen?
Dus hoe zorg je dat een link in de database gelinkt word aan de juiste tags?
 
Gewoon een extra kolom aanmaken in de database met als naam tag. Stel dat je een meubelsite hebt, dan voeg je bij alle bankstellen als tag 'bank' in. En dan als er op de link geklikt wordt zo'n soort query erop loslaten.

PHP:
$tag_query = "SELECT * FROM `tbl_products` WHERE `tag` = 'bank'";
$result = mysql_query( $tag_query );

Ik zou het zoiets doen denk ik, maar er zijn vast nog wel andere (of betere) methoden.
 
Daar had ik ook al aan gedacht. Maar als je meerdere tags hebt krijg je wel veel kolommen.
 
Die methode klopt dan ook niet. Tags sla je op in een aparte tabel.


** products **
id_product
product

** tags **
id_product
tag


Zo kun je een oneindig aantal tags opslaan per product.
 
Helaas begrijp ik het nog niet helemaal.
Dit is wat ik heb:

Een tabel met de naam linken.

id
naam_link
url
-------------------------
Een tabel met de naam tag.

id
naam_tag
link_id

In de tabel tag zet ik bv. baby - speelgoed - kleding
Bij link_id zet ik 1 omdat in de tabel linken een link staat die gaat naar een babygroothandel met id 1.

Maar hoe doe ik dat dan als ik nog een andere link heb die gekoppeld kan worden aan de tag baby?
Moet ik dan nog een keer de tag naam baby invoeren in de tabel tag?

Ik had gehoopt dat dit anders kon.
 
Als je het zo gaat doen heb je 3 tabellen nodig.

Een tabel met de naam linken.

id
naam_link
url
-------------------------
Een tabel met de naam tag.

id
naam_tag

--------------------------
Een koppeltabel met de naam linken_tag

id
link_id
tag_id



Nu kun je in de "Tag" tabel elke tag toevoegen, in de "Linken" tabel voeg je elke mogelijk link toe, en vervolgens vul je "Linken_Tag" met alle mogelijke combinaties van links naar tags; dus als de tag Baby naar link 1 en 2 moet wijzen, dan krijg je twee rijen in linken_tag met de tag_id van "Baby" en de link_id van 1 en 2.

Als je begrijpt wat ik bedoel :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan