I have just modified the wiki to allow "back" links by that I mean that by clicking the title the user is able to see and go to all the topics that link to the current topic they are viewing. I would post the code for this here but I'm not yet happy with it as it really is very much hacked together but I'm going to pop up the db info as I'm fairly happy with that though I'm positive the querys could be improved.
-- This creates the table and and index
USE [EWDSDNN] -- Change this to the db that you use...
GO
/****** Object: Table [dbo].[Wiki_LinkIndex] Script Date: 11/16/2007 09:39:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Wiki_LinkIndex](
[LNKID] [int] IDENTITY(1,1) NOT NULL,
[ParentID] [int] NOT NULL,
[ChildName] [nvarchar](50) NOT NULL,
[moduleID] [int] NOT NULL,
CONSTRAINT [PK_Wiki_LinkIndex] PRIMARY KEY CLUSTERED
(
[LNKID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [NC_Wiki_Link] ON [dbo].[Wiki_LinkIndex]
(
[ParentID] ASC,
[ChildName] ASC,
[moduleID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
-- get topics by child
CREATE PROCEDURE [dbo].[Wiki_TopicLinkIndexGetByName]
@topicName varchar(50)
,@moduleID int
AS
SET NOCOUNT ON
SELECT t.Name
FROM dbo.Wiki_LinkIndex as l Join dbo.Wiki_Topic as t on
t.topicID = l.parentID
WHERE
l.childName = '[['+ @topicName + ']]'
AND l.moduleID = @moduleID
ORDER BY Name
GO
-- Add Child
CREATE PROCEDURE [dbo].[Wiki_TopicLinkIndexAdd]
@moduleid int
,@parentid int
,@childName varchar(50)
AS
SET NOCOUNT ON
INSERT INTO dbo.Wiki_LinkIndex([ParentID],[ChildName],[moduleID])
VALUES(@parentid, @childName,@moduleid)
GO
--- Delete links for a parent
CREATE PROCEDURE [dbo].[Wiki_TopicLinkIndexDelete]
@parentid int
AS
SET NOCOUNT ON
DELETE FROM dbo.Wiki_LinkIndex
WHERE ParentID = @parentid
GO
-- End of Script
This does imply a parent child relationship between items but in reality is more peer to peer.
I will post up what I have done to the vb to get this working soon.
EDIT:
Okay I have a working demo available now on http://ewds.strath.ac.uk/Development.aspx