There's a few different ways of representing hierarchies. Probably the most straightforward is using a simple recursive relationship like this:CREATE TABLE [dbo].[Component]( [ComponentID] [int] NOT NULL, [ComponentDescription] [varchar](50) COLLATE Latin1_General_CI_AS NOT NULL, [ParentComponentID] [int] NULL, CONSTRAINT [PK_Component] PRIMARY KEY CLUSTERED ( [ComponentID] ASC))ALTER TABLE [dbo].[Component] WITH CHECK ADD CONSTRAINT [FK_Components_ComponentID] FOREIGN KEY([ParentComponentID])REFERENCES [dbo].[Component] ([ComponentID])INSERT INTO component SELECT 1, 'Biggest Widget', NULLINSERT INTO component SELECT 2, 'Big Widget A', 1INSERT INTO component SELECT 3, 'Big Widget B', 1INSERT INTO component SELECT 4, 'Widget C', 3INSERT INTO component SELECT 5, 'Widget D', 3INSERT INTO component SELECT 6, 'Widget E', 2INSERT INTO component SELECT 7, 'Small Widget G', 5INSERT INTO component SELECT 8, 'Small Widget H', 5
Mark