/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
DB-Struktur og breadcrumbs
Fra : Kasper Katzmann


Dato : 24-10-03 10:53

Er der nogen her kan give mig lidt inspiration til hvordan jeg strukturerer
min MSSQL database, når jeg skal have breadcrumbs på mit site.

Alt på sitet (tekst m.m.) skal ligges i databasen. Kan jeg klare mig med en
tabel eller skal jeg have flere tabeller som jeg så skal joine?

Håber der er nogen der kan give mig lidt input, da jeg er gået ret meget i
stå.


--
Mvh
Kasper Katzmann



 
 
Morten Wulff (24-10-2003)
Kommentar
Fra : Morten Wulff


Dato : 24-10-03 17:34

On Fri, 24 Oct 2003 11:53:19 +0200, Kasper Katzmann
<kasper@FJERNESkatzmann.dk> wrote:

> Er der nogen her kan give mig lidt inspiration til hvordan jeg
> strukturerer min MSSQL database, når jeg skal have breadcrumbs
> på mit site.
>
> Alt på sitet (tekst m.m.) skal ligges i databasen. Kan jeg klare mig med
> en tabel eller skal jeg have flere tabeller som jeg så skal joine?

Hvis dine sider er organiseret i en træstruktur, kan du måske gøre noget i
stil med følgende:

Struktur:

Forside
+---Produkter
| +---Billeder
|
+---Kontakt

Tabel:

+---------------------+
| tree |
+-------+-------------+
| name | varchar(16) |
| lft | int(11) |
| rgt | int(11) |
+-------+-------------+

Data:

+-----------+-----+-----+
| name | lft | rgt |
+-----------+-----+-----+
| Forside | 1 | 8 |
| Produkter | 4 | 7 |
| Billeder | 5 | 6 |
| Kontakt | 2 | 3 |
+-----------+-----+-----+

Nu kan du lave et breadcrumb trail til siden Billeder vha. følgende
forespørgsel:

SELECT t2.*
FROM tree AS t1, tree AS t2
WHERE t1.lft BETWEEN t2.lft AND t2.rgt AND t1.name='Billeder'
ORDER BY lft;

+-----------+-----+-----+
| name | lft | rgt |
+-----------+-----+-----+
| Forside | 1 | 8 |
| Produkter | 4 | 7 |
| Billeder | 5 | 6 |
+-----------+-----+-----+

Problemet er at det koster at indsætte nye sider fordi du i snit er nødt
til at opdatere halvdelen af alle lft og rgt værdier når du indsætter en
ny side.

Du kan læse mere om ovenstående i en af Joe Celko's artikler:

http://dbforums.com/archives/t62329.html
http://www.dbmsmag.com/9603d06.html
http://www.intelligententerprise.com/001020/celko.shtml


Mange venlige hilsner,

Morten Wulff


--
Self Injury Information and Support: www.psyke.org

"I have a school book with my name on it."
"Your parents must be so proud." (http://www.actsofgord.com/)

Troels Arvin (25-10-2003)
Kommentar
Fra : Troels Arvin


Dato : 25-10-03 11:31

On Fri, 24 Oct 2003 18:34:28 +0200, Morten Wulff wrote:

> Problemet er at det koster at indsætte nye sider fordi du i snit er nødt
> til at opdatere halvdelen af alle lft og rgt værdier når du indsætter en
> ny side.

Nested-set er ikke den eneste mulighed for at gemme træ-ordnede data i
det RDBMS. Se http://troels.arvin.dk/links/rdbms/#hierarchical

Hvad er det her med "breadcrumbs" i øvrigt for noget?

--
Greetings from Troels Arvin, Copenhagen, Denmark


Morten Wulff (25-10-2003)
Kommentar
Fra : Morten Wulff


Dato : 25-10-03 11:38

On Sat, 25 Oct 2003 12:30:48 +0200, Troels Arvin <troels@arvin.dk> wrote:
> Nested-set er ikke den eneste mulighed for at gemme træ-ordnede data i
> det RDBMS. Se http://troels.arvin.dk/links/rdbms/#hierarchical

Så er der vist læsning til resten af weekenden! Tak for linket.

> Hvad er det her med "breadcrumbs" i øvrigt for noget?

En hjælp til navigation på websites. De kan hjælpe brugeren til at se hvor
i sitets struktur han/hun befinder sig:

Du er her: Forside > Artikler > Databaser > Træstrukturer

Jeg bruger det blandt andet på www.psyke.org (som dog ikke benytter en
database backend).


Mvh,

Morten Wulff


--
Self Injury Information and Support: www.psyke.org

"I have a school book with my name on it."
"Your parents must be so proud." (http://www.actsofgord.com/)

Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408518
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste