| FAQ |
| Kalender |
|
|
|
|
#1 | ||
|
|||
|
Klarade millennium-buggen
|
Citat:
Det beror på vad du ska ha taggarna till, är det en typ av koppling mellan en "tagg" (eg särskilda nyckelord) och en artikel du vill ha för att snabbt hitta till en specifik artikel. I så fall bör man ha en uppsättning tabeller ungefär så här: Tabell: ARTIKEL - ArtikelId (Primärnyckel) - ArtikelText (String) Tabell: PERSON - PersonId (Primärnyckel) - Namn (String) Tabell: TAG - TagId (Primärnyckel) Tabell: ARTIKEL_TAG - ArtikelId (Primärnyckel) (Främmande nyckel till Tabell: ARTIKEL) - TagId (Primärnyckel) (Främmande nyckel till Tabell: TAG) Om du sen ska få fram en lista på alla artiklar som innehåller taggen "Gurka" så skriver du så här i SQL: Kod:
SELECT *
FROM Artikel a
WHERE a.ArtikelId
IN
(SELECT t.ArtikelId FROM Artikel_Tag t WHERE t.TagId
IN ('Gurka', 'Melon', 'Banan')
)
Fördelen med detta sätt är att det blir blixtsnabba sökningar. Använder du fritextsökning så kommer SQL tvingas göra en tablescan (dvs gå igenom varenda rad i hela databasen för varje sökning) medan den kod jag presenterade ovan endast gör en effektiv indexsökning och därmed blir den blixtsnabb. Senast redigerad av Conny Westh den 2010-01-09 klockan 04:20 |
||
|
|
Svara med citat
|
| Svara |
| Ämnesverktyg | |
| Visningsalternativ | |
|
|