2010-06-17 3 views
1

Ma table de jeu imbriquée est la suivante.Comment lier le contenu Web dans une base de données avec un modèle de jeu imbriqué?

create table depts (
    id int identity(0, 1) primary key 
    , lft int 
    , rgt int 
    , name nvarchar(60) 
     , abbrv nvarchar(20) 
); 

Départements de test.

insert into depts (lft, rgt, name, abbrv) values (1, 14, 'root', 'r'); 
insert into depts (lft, rgt, name, abbrv) values (2, 3, 'department 1', 'd1'); 
insert into depts (lft, rgt, name, abbrv) values (4, 5, 'department 2', 'd2'); 
insert into depts (lft, rgt, name, abbrv) values (6, 13, 'department 3', 'd3'); 
insert into depts (lft, rgt, name, abbrv) values (7, 8, 'sub department 3.1', 'd3.1'); 
insert into depts (lft, rgt, name, abbrv) values (9, 12, 'sub department 3.2', 'd3.2'); 
insert into depts (lft, rgt, name, abbrv) values (10, 11, 'sub sub department 3.2.1', 'd3.2.1'); 

Ma table de contenu Web est la suivante.

create table content (
    id int identity(0, 1) 
    , dept_id int 
    , page_name nvarchar(60) 
    , content ntext 
); 

Contenu du test. J'essaye d'interroger le contenu correct de page (de la table de contenu) basé sur l'URL donnée. Je peux facilement accomplir cette tâche avec un département racine. Cependant, interroger un département avec plusieurs profondeurs s'avère être un peu plus difficile. Par exemple:

http://localhost/departments.asp?d3/ (Should return <h2>welcome to department 3!</h2>) 
http://localhost/departments.asp?d2/what-doing (Should return <h2>what is department 2 doing?</h2>) 

Je ne sais pas si cela peut être créer dans une requête ou s'il y aura besoin d'être une fonction récursive de quelque sorte. Aussi, s'il n'y a rien après le dernier/alors supposons que nous voulons la page d'index.

Ce serait essentiellement l'extrémité arrière d'un petit CMS. Donc, je pensais que vous pouviez créer de nouvelles pages avec un nom unique associé à une catégorie. Ce qui dans mon cas, serait les ministères. J'ai regardé autour et il n'y a pas beaucoup de choix en termes de CMS pour ASP Classic.

Comment cela peut-il être accompli? Commentaires et suggestions sont également les bienvenus.

Merci.

Répondre

2

J'ai fait quelque chose très similaire à ceci (sauf avec PHP/MySQL). Je n'ai pas le code devant moi, mais je serais heureux de vous le fournir si vous pensez que cela pourrait aider:

Je crois que la principale différence dans mon approche était que je n'avais pas de table avec l'ensemble imbriqué, j'ai juste eu le contenu et lft/rgt ensemble dans une table. La gestion de contenu permet à l'utilisateur de créer une hiérarchie de contenu avec autant de profondeur qu'ils osaient, de sorte que le site pourrait se révéler quelque chose comme:

http://site/tier1-page 
http://site/tier1-page/tier2-pageA 
http://site/tier1-page/tier2-pageB 
http://site/tier1-page/tier2-pageB/tier3-pageI 
http://site/tier1-page/tier2-pageB/tier3-pageII 

... et ainsi de suite.

+0

Il serait grandement apprécié si vous avez posté votre solution. – Mike

+0

m'a frappé sur twitter ou quelque chose et je vais vous envoyer une copie –

Questions connexes