Avatar billede webcreator Nybegynder
18. juli 2003 - 10:25 Der er 20 kommentarer og
1 løsning

Søgemaskine - struktur, opbygning af DB mm.

Hej.

Jeg står og skal lave en lille søgemaskine i stil med Jubii's. Der er hovedkategorierne samt adskillige underkategorier. Herunder kan links tilmeldes.

Problemet er, at jeg gerne vil have, at både underkategorier og links hentes fra en DB. Men hvordan gøres dette bedst ? Det ville være rart, kun at have én side - fx. kategori.php, som henter kategorien fra URL'en, og præsentere underkategorier samt links. I stil med :

kategori.php?kate=EDB

Her præsenteres alle links incl. underkategorierne :

- Software
- Hardware
- osv.

Jeg er ude efter fif om opsætning af min tabel, da jeg ikke kan se, hvordan jeg bedst muligt kombinere kategorier og links.
Avatar billede arne_v Ekspert
18. juli 2003 - 10:32 #1
Der er flere muligheder.

Måske:

Side
----

URL (PK)
titel
oprettettidspunkt
oprettetaf

Kategori
--------

navn (PK)
overkategori (FK)

SideKategori
------------

sideURL (del PK, FK)
kategori (del PK, FK)
Avatar billede arne_v Ekspert
18. juli 2003 - 10:33 #2
Og hvis du skal kunen søge så:

Ord
---

ord (del PK)
URL (del PK, FK)
Avatar billede webcreator Nybegynder
18. juli 2003 - 10:34 #3
Hvor kommer alle kategorierne ind i billedet ? På hver side, skal alle underkategorier være listet.
Avatar billede webcreator Nybegynder
18. juli 2003 - 10:35 #4
PK ? FK ?
Avatar billede arne_v Ekspert
18. juli 2003 - 10:38 #5
PK = Primary Key = primær nøgle
FK = Foreign Key = fremmed nøgle
Avatar billede webcreator Nybegynder
18. juli 2003 - 10:38 #6
IC. Men jeg forstår ikke strukturen. Sikker på du forstår mit indlæg ?
Avatar billede arne_v Ekspert
18. juli 2003 - 10:40 #7
Du finder alle top level kategorier med:

SELECT navn FROM kategori WHERE overkategori IS NULL;

Du finder alle kategorier under en kategori med:

SELECT navn FROM kategori WHERE overkategori = 'whatever';
Avatar billede arne_v Ekspert
18. juli 2003 - 10:41 #8
Det er muligt at jeg har misforstået dit spørgsmål.

Jeg læste det som at det var database strukturen og database queries
du var interesseret i.

Hvis det er applikationen, så skal du nok fortælle hvilket sprog du bruger.
Avatar billede webcreator Nybegynder
18. juli 2003 - 10:41 #9
Uha, se det lyder smart.

Kan du give et eksempel ? Hvor henter den kategorierne fra ? Der må jo være en liste. Og hvordan kan den kende rækkefølgen/strukturen ?
Avatar billede webcreator Nybegynder
18. juli 2003 - 10:41 #10
Fårk. Hader fejl i eksperten. Trykkende tab - så skal den ski da ikke hoppe til accepter, hehe :)
Avatar billede webcreator Nybegynder
18. juli 2003 - 10:42 #11
PHP og MySQL
Avatar billede arne_v Ekspert
18. juli 2003 - 10:42 #12
Finde side under kategori:

SELECT URL FROM side,sidekategori
WHERE side.URL=sidekategori.sideURL AND sidekategori.kategori = 'whatever';
Avatar billede arne_v Ekspert
18. juli 2003 - 10:44 #13
Finde sider med ord:

SELECT URL FROM side,ord
WHERE side.URL = ord.URL AND ord.ord = 'noget';
Avatar billede webcreator Nybegynder
18. juli 2003 - 10:45 #14
Heh, du må undskylde, men jeg skal bruge nogle forklaringer. Du kunne paste mig en hvilken som helst kode lige nu. Aner ikke i hvilken sammenhæng den skal bruges
Avatar billede webcreator Nybegynder
18. juli 2003 - 10:46 #15
Går du stadig ud fra samme tabel-opsætning, som du beskrev tidligere ? En forklaring på denne ville i så fald være en begyndelse :-)
Avatar billede arne_v Ekspert
18. juli 2003 - 10:46 #16
Nu kender jeg ikke noget til PHP, men normal er det noget i stil med at
applikationen udfører SELECT statement og så henter man en record
af gangen.

Og det er muligt at udføre andre SQL sætninger for hver record. D.v.s.
at du kan godt hente over kategorierne en af gangen og så for hver
over kategori hente alle de relevant under kategorier.
Avatar billede webcreator Nybegynder
18. juli 2003 - 10:47 #17
Ja, og det er en sådan løsning jeg mangler. Nu mangler jeg så blot nogle konkrete eksempler, som jeg kan udvikle videre på :)
Avatar billede arne_v Ekspert
18. juli 2003 - 10:50 #18
Side tabellen inderholder beskrivelser af side - 1 record per side.

Kategori tabellen indeholder beskrivelsef af en kategori. Der er et
felt overkategori som indeholder navnet på en overkategori hvis en sådan
eksisterer og ellers NULL.

Sidekategori tabellen sammenknytter sider og kategorier. En side kan tilhøre
mange kategorier og en kategori kan indehodle mange sider.

Ord tabellen gør at man kan tilknytte søge ord til sider.
Avatar billede arne_v Ekspert
18. juli 2003 - 10:54 #19
Et eksempel.

Side

http://www.eksperten.dk/  Eksperten  18/07/2003  NN
http://www.php.net/  PHP  18/07/2003  NN

Kategori

IT  NULL
Hjælp  IT
PHP  IT

SideKategori

http://www.eksperten.dk/  Hjælp
http://www.eksperten.dk/  PHP
http://www.php.net/  PHP
Avatar billede arne_v Ekspert
18. juli 2003 - 10:57 #20
SELECT navn FROM kategori WHERE overkategori IS NULL;

vil så returnerer 1 record med IT.

SELECT navn FROM kategori WHERE overkategori = 'IT';

vil returnerer 2 records med Hjælp og PHP.

SELECT URL FROM side,sidekategori
WHERE side.URL=sidekategori.sideURL AND sidekategori.kategori = 'Hjælp';

vil returnere 1 record.

SELECT URL FROM side,sidekategori
WHERE side.URL=sidekategori.sideURL AND sidekategori.kategori = 'PHP';

vil returnere 2 records.
Avatar billede arne_v Ekspert
18. juli 2003 - 10:58 #21
Så skal de SQL sætninger bare pakkes ind i noget PHP kode.

Men det er jeg næppe den bedste til.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester