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 :)
5 svar · 374 visningar · startad av SimOnline
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 :)
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? :)
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?
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
@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.
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