webForumDet fria alternativet

Hur koppla poster till "tags"?

5 svar · 374 visningar · startad av SimOnline

SimOnlineMedlem sedan juli 20031 132 inlägg
#1

Jag hade tänkt skapa en databas där posterna ska kunna kopplas till tags, nyckelord, a la del.icio.us, men jag vet inte riktigt hur databasen ska utformas för detta.

Hjälp önskas :)

@ndersMedlem sedan juni 200032 969 inlägg
#2

Jag förstår inte ett spår av vad du menar. Kan du försöka en gång till? För min skull? :)

SimOnlineMedlem sedan juli 20031 132 inlägg
#3

Alltså, i exemplet med del.icio.us handlar det ju om länkar som på något vis lagras i en databas genom att användarna lägger till dom. I samband med att man lägger till en länk kan man fylla i ett antal "tags" som man anser vara passande. T.ex. skulle jag kunna lägga till WebForum och ha med "forum", "internet", "programmering" och "kolon-e" som tags. Om det sedan finns flera länkar inlagda med samma tags kan man enkelt lista dessa tillsammans. Social navigering tror jag bestämt att det kallas.

Det kanske räcker att ha en kolumn i tabellen med länkar som heter "tags". Men hur gör jag isf sedan för att lista alla länkar som har tex forum i denna kolumn?

@ndersMedlem sedan juni 200032 969 inlägg
#4

Det kanske räcker att ha en kolumn i tabellen med länkar som heter "tags". Men hur gör jag isf sedan för att lista alla länkar som har tex forum i denna kolumn?

SELECT * FROM tbl WHERE fld LIKE '%forum%'

Annars kan man ju tänka sig att man har en kopplingstabell där du kopplar en länk mot enskilda ord, så du slipper LIKE-sökningar, utan gör allt i JOIN istället.

Använder man SQL Server kan man ju fulltextindexera en tabell med sökord, och få bättre prestanda och med "sökmotorlik" sökning.

mvh

SimOnlineMedlem sedan juli 20031 132 inlägg
#5

@nders skrev:

Det kanske räcker att ha en kolumn i tabellen med länkar som heter "tags". Men hur gör jag isf sedan för att lista alla länkar som har tex forum i denna kolumn?

SELECT * FROM tbl WHERE fld LIKE '%forum%'

Annars kan man ju tänka sig att man har en kopplingstabell där du kopplar en länk mot enskilda ord, så du slipper LIKE-sökningar, utan gör allt i JOIN istället.

Använder man SQL Server kan man ju fulltextindexera en tabell med sökord, och få bättre prestanda och med "sökmotorlik" sökning.

mvh

Stort tack för hjälpen, men jag väntar lite med att acceptera svaret som slutgiltigt. Skulle du vilja utveckla det där om en kopplingstabell?

Jag är väldigt oinsatt i detta, men just nu använder jag mig iaf av MySQL-databaser.

@ndersMedlem sedan juni 200032 969 inlägg
#6

Det jag hade tänkt mig är då tre tabeller (med utgång i delicious-fallet); en som inehåller länkar, en som innehåller "taggar", och en som kopplar samman dessa tabeller. Koppingstabellen behöver då inte innehålla mer än räknarvärdet från länktabellen, och räknarvärdet från tagg-tabellen, för de poster som passar ihop. Sedan kan du ställa en JOIN-fråga för att få ut alla länkar som är märkta med en viss tagg.

SELECT url.* FROM url
INNER JOIN urltag ON url.id = urltag.urlid
INNER JOIN tag on urltag.tagid = tag.id
AND tag.id = 4711

Den första joinen knyter alltså ihop länktabellen med kopplingstabellen, och den andra joinen knyter ihop kopplingstabellen med tagg-tabellen.

mvh

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)