---
title: "Sökmotor bland länksamling"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/13303-sökmotor-bland-länksamling"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Pace"
published: "2001-12-12T22:20:00.000Z"
updated: "2001-12-20T21:18:00.000Z"
replies: 27
views: 447
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/13303-sökmotor-bland-länksamling"
---

# Sökmotor bland länksamling

_Sida 1 av 2._

## #1 — Pace, 2001-12-12T22:20Z

Har tänkt att lägga upp en struktur för en länksamling som är tänkt att  expandera kraftigt. Därför har jag beslutat att dela in länkarna i kategorier samt i underkategorier.

Och då till frågan: Ska jag göra själva kategoriseringen i databasen, eller i en fil för sig? För-/nackdelar?

Permalänk: https://www.webforum.nu/p/13303

## #2 — LarsG, 2001-12-12T22:23Z

Lägg det i databasen. 

Måste jag motivera det?

Permalänk: https://www.webforum.nu/p/301307

## #3 — Pace, 2001-12-12T22:25Z

Nej, det behöver du inte. ;)

Men hur ska jag göra med underkategorier? Det är inga problem i ett steg, exempelvis "Hej \> Hopp", men ska man gå ner ytterligare ett steg  blir det problem "Hej \> Hopp \> Hej då". Hur ska man genomföra det?

Permalänk: https://www.webforum.nu/p/301308

## #4 — LarsG, 2001-12-12T22:35Z

Om du sätter ett maxdjup på antal underkategorier så går det att skriva en fråga (utan rekursion) som plockar fram allt i godtycklig (sub)kategori.

Permalänk: https://www.webforum.nu/p/301309

## #5 — Pace, 2001-12-12T22:40Z

Du menar alltså att man får skapa en tabell per underkategori och sedan göra en sammanslagning av dessa plus sökresultatet när man hämtar datan?

Permalänk: https://www.webforum.nu/p/301310

## #6 — LarsG, 2001-12-12T22:52Z

Nej, det behövs inte 

category
\--------
id   
name 
description

subcategory
\-----------
subcategoryid
categoryid -- kan vara null

link
\----
id
url
description
categoryid

Sen skan man använda unions och lite selfjoin för att få fram det man vill. 

Alternativt kan man först traversera kategoriträdet och få fram en lista på möjliga id eller så kan du läsa upp hela den strukturen en gång och lagra i application. Det blir förmodligen inte så mycket data.

Permalänk: https://www.webforum.nu/p/301311

## #7 — Pace, 2001-12-12T22:58Z

Okej, men om jag ska lagra en länk i "category" tabellen, vilket ID ska jag då ange i "link" tabellen? För samma ID kan ju både förekomma i "category" och "subcategorys"?!

Permalänk: https://www.webforum.nu/p/301312

## #8 — LarsG, 2001-12-12T23:15Z

Borde väl bli subcategoryid. Jag kom att tänka på en sak....

Du kanske vill ha möjlighet att sätta flera kategorier för dina länkar?

Permalänk: https://www.webforum.nu/p/301313

## #9 — Pace, 2001-12-12T23:18Z

Om så vore möjligt, ja!
Man vet ju aldrig hur det kan bli i framtiden. ;) 

> Borde väl bli subcategoryid.

Om jag vill lägga något i en "rootkategori" då? Exempelvis "Film" istället för "Film \> Filmskolor"?

Permalänk: https://www.webforum.nu/p/301314

## #10 — LarsG, 2001-12-12T23:24Z

Det kanske är bättre om du döper kolumnerna så här

subcategory
\-----------
categoryid
parentcategoryid 

Om något är en rootkategori så har den en parentcategoryid som är null.

Om du vill kunna ha en länk i flera kategorier så får du bryta ut det i en egen tabell

linkcategory
\------------
linkid
categoryid

Permalänk: https://www.webforum.nu/p/301315

## #11 — Pace, 2001-12-12T23:26Z

> subcategory ...
> Om något är en rootkategori så har den en parentcategoryid som är null.

Aha, den modellen kör jag på! Tack!

> Om du vill kunna ha en länk i flera kategorier så får du bryta ut det i en egen tabell

Oj, då missuppfattade jag din fråga tidigare. Den ska bara finnas i en (1) kategori.

Permalänk: https://www.webforum.nu/p/301316

## #12 — Pace, 2001-12-13T22:23Z

Hello,

Nu har jag kommit så långt att jag behöver hjälp med SQL satsen. Hur ska jag göra för att läsa ut kategorierna med tillhörande underkategorier?

Exempel:

```
[b]Category_ID &#0124; Cat_Name &#0124; ParentCategory_ID[/b]
1 - Uthyrningsföretag - null
2 - LiteGrip - 1
3 - Arri - 1
4 - Aaton - 1
```

Permalänk: https://www.webforum.nu/p/301317

## #13 — Pace, 2001-12-13T23:30Z

Vad ska jag använda för funktioner? Någon typ av JOIN?

Permalänk: https://www.webforum.nu/p/301318

## #14 — LarsG, 2001-12-13T23:55Z

Hur skall det fungera?  

Tänkte du lägga ut alla kategorier i en dropdown och sedan skicka en lista av valda kategorier(id) till söksidan? 

Sen så vill du ha en funktion som givet ett kategoriid returnerar id för alla överliggande kategorier eller?

Vill du kunna hantera ett godtyckligt djup i trädet?

Kommer du att lägga till nya kategorier väldigt ofta?

Det jag funderar på är om det är effektivast att lägga alla kategorier i en array (där index motsvarar id) och som innehåller parentkategori. Då är det lätt att loopa igenom den för varje id tills man kommer till en rootkategori. Den arrayen kan du spara i en application-variabel.

Permalänk: https://www.webforum.nu/p/301319

## #15 — Pace, 2001-12-14T00:08Z

Hur skall det fungera?
Bra fråga. ;) 

Tänkte du lägga ut alla kategorier i en dropdown och sedan skicka en lista av valda kategorier(id) till söksidan? 
Nej.

Sen så vill du ha en funktion som givet ett kategoriid returnerar id för alla överliggande kategorier eller?
Japp.

Vill du kunna hantera ett godtyckligt djup i trädet?
Eventuellt 1-2 underkategorier. Kanske mer.

Kommer du att lägga till nya kategorier väldigt ofta?
Nej.

Det jag funderar på är om det är effektivast att lägga alla kategorier i en array (där index motsvarar id) och som innehåller parentkategori. Då är det lätt att loopa igenom den för varje id tills man kommer till en rootkategori. Den arrayen kan du spara i en application-variabel.
Jag tänkte också på det, men man ska ju även kunna ha länkar i en rootkategori.

Alltså

```
Film
- Imdb.com

Film > Företag
- Arri.com
```

Eller jag kanske ska köra på att sköta "sorteringen" med ASP?
r) Och använda sig av rekursion när man visar kategorierna?!

Permalänk: https://www.webforum.nu/p/301320

## #16 — Pace, 2001-12-14T00:43Z

glöm detta ;)

\[Redigerat av Pace den 14 dec 2001\]

Permalänk: https://www.webforum.nu/p/301321

## #17 — Pace, 2001-12-14T14:37Z

Okej, nu har jag bestämt mig för att enbart ha 1 underkategori. Det blir enklast.

Så jag har följande tabeller:

```
[b]Lankar_Cat[/b]
----------
Cat_ID
Cat_Name

[b]Lankar_Subcat[/b]
-------------
Subcat_ID
Subcat_Name
RootCat_ID

[b]Lankar[/b]
------
ID
Titel
Url
Beskrivning
Kategori
Subkategori
Klick
```

När jag lägger till en länk så kan den antingen ligga i en rootkategori, eller en underkategori. När den ligger i rooten tänkte jag att exempelvis: Kategori = 3 och Subkategori = null,
och när den ska ligga i en underkategori så blir det
Kategori = null och Subkategori = 3

Men hur ska SQL satsen se ut? Så här långt har jag kommit:

```
SELECT kategori, id, titel, url, beskrivning, klick
FROM Lankar
LEFT JOIN Lankar_Cat ON Lankar.Kategori = Lankar_Cat.Cat_ID
```

Permalänk: https://www.webforum.nu/p/301322

## #18 — LarsG, 2001-12-14T18:06Z

Varför har du med både kategori och subkategori i lankar?

Varför har du med subcat_namn i Lankar_subcat?

Varför blandar du svenska och englska namn?

Lankar_Cat
\----------
Cat_ID
Cat_Name

Lankar_Subcat
\-------------
Subcat_ID
RootCat_ID

Lankar
\------
ID
Titel
Url
Beskrivning
Kategori
Klick

```
select Cat_Name,id, titel, url, beskrivning, klick
FROM Lankar inner JOIN Lankar_Cat ON Lankar.Kategori = Lankar_Cat.Cat_ID
where  Lankar.Kategori = [i]din kategori[/i]
union
select Cat_Name,id, titel, url, beskrivning, klick
FROM (Lankar inner JOIN Lankar_Subcat ON Lankar.Kategori = Lankar_subCat.subCat_ID
inner join Lankar_Cat ON Lankar_subCat.RootCatID = Lankar_Cat.Cat_ID
where  Lankar.Kategori = [i]din kategori[/i]
```

Permalänk: https://www.webforum.nu/p/301323

## #19 — Pace, 2001-12-15T14:55Z

Varför har du med både kategori och subkategori i lankar?
För att det var det enda sättet jag fick det att fungera. Men det är bl.a. det jag behöver ha hjälp med!

Varför har du med subcat_namn i Lankar_subcat?
Det är ju underkategoriernas namn. Eller hur menar du?

Varför blandar du svenska och englska namn?
 :r Dålig vana. Tabellen "lankar" gjorde jag för några månader sedan, och de andra nyligen.

Jag fick i alla fall detta felet på den SQL du gav mig ovan (MySQL):

```
You have an error in your SQL syntax near 'INNER JOIN Lankar_Cat ON Lankar.Kategori = Lankar_Cat.Cat_IDWHERE Lankar.Kategor' at line 1
```

Permalänk: https://www.webforum.nu/p/301324

## #20 — LarsG, 2001-12-15T16:55Z

Jag tänkte att du skulle ha med alla kategorier, även subkategorier, i lankar_cat. (Det skulle underlätta om du senare vill lägga till subsubkategorier.)

Av felet att döma så saknar du en blank framför where någonstans i din sql-sats.

Du vet väl att du behöver mysql 4.0 för att union skall fungera.

Permalänk: https://www.webforum.nu/p/301325

---

Tråden på webben: https://www.webforum.nu/amne/asp/13303-sökmotor-bland-länksamling  
Nästa sida: https://www.webforum.nu/amne/asp/13303-sökmotor-bland-länksamling/page2.md
