有几张表, 大部门,区域, 团队,操作员  , 等级关系 如下Department -> Section -> Team -> Operation.依次减小范围。还有个 QAS_input 的表把他们主外键关系 关联起来。现在的程序界面是
单击某个大部门,就显示所有的区域信息, 然后单击某区域,显示全部团队,单击某团队,显示所有操作员的信息。还可以单击后退,重新显示上级。 请问这样的存储过程如何设计啊? 如果都封装到1个存储过程里面。 谢谢啦!!!这是建表脚本:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[QAS_Dept](
[pkDept] [int] NOT NULL,
[sDept_Name] [nvarchar](20) NULL,
[sDept_DTR] [nchar](2) NULL,
 CONSTRAINT [PK_QAS_Dept] PRIMARY KEY CLUSTERED 
(
[pkDept] 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 TABLE [dbo].[QAS_Section](
[pkSection] [int] NOT NULL,
[sSection_Name] [varchar](20) NULL,
[sSection_DTR] [nchar](2) NULL,
 CONSTRAINT [PK_QAS_Section] PRIMARY KEY CLUSTERED 
(
[pkSection] 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 TABLE [dbo].[QAS_Team](
[pkTeam] [int] NOT NULL,
[sTeam_Name] [nvarchar](20) NULL,
[sTeam_DTR] [nchar](2) NULL,
 CONSTRAINT [PK_QAS_Team] PRIMARY KEY CLUSTERED 
(
[pkTeam] 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 TABLE [dbo].[QAS_Operation](
[pkOperation] [int] NOT NULL,
[sOperation_Name] [nchar](20) NULL,
[sOperation_DTR] [nchar](5) NULL,
 CONSTRAINT [PK_QAS_Operation] PRIMARY KEY CLUSTERED 
(
[pkOperation] 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 TABLE [dbo].[QAS_Input](
[pkInput] [int] NOT NULL,
[fkDept] [int] NOT NULL,
[fkSection] [int] NOT NULL,
[fkTeam] [int] NOT NULL,
[fkOperation] [int] NOT NULL,
[fkEquipment] [int] NOT NULL,
[fkArea] [int] NOT NULL,
 CONSTRAINT [PK_QAS_Input] PRIMARY KEY CLUSTERED 
(
[pkInput] 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
ALTER TABLE [dbo].[QAS_Input]  WITH CHECK ADD  CONSTRAINT [FK_QAS_Input_QAS_Area] FOREIGN KEY([fkArea])
REFERENCES [dbo].[QAS_Area] ([pkArea])
GO
ALTER TABLE [dbo].[QAS_Input] CHECK CONSTRAINT [FK_QAS_Input_QAS_Area]
GO
ALTER TABLE [dbo].[QAS_Input]  WITH CHECK ADD  CONSTRAINT [FK_QAS_Input_QAS_Dept] FOREIGN KEY([fkDept])
REFERENCES [dbo].[QAS_Dept] ([pkDept])
GO
ALTER TABLE [dbo].[QAS_Input] CHECK CONSTRAINT [FK_QAS_Input_QAS_Dept]
GO
/****** Object:  ForeignKey [FK_QAS_Input_QAS_Equipment]    Script Date: 07/21/2010 16:30:37 ******/
ALTER TABLE [dbo].[QAS_Input]  WITH CHECK ADD  CONSTRAINT [FK_QAS_Input_QAS_Equipment] FOREIGN KEY([fkEquipment])
REFERENCES [dbo].[QAS_Equipment] ([pkEquipment])
GO
ALTER TABLE [dbo].[QAS_Input] CHECK CONSTRAINT [FK_QAS_Input_QAS_Equipment]
GO
/****** Object:  ForeignKey [FK_QAS_Input_QAS_Operation]    Script Date: 07/21/2010 16:30:37 ******/
ALTER TABLE [dbo].[QAS_Input]  WITH CHECK ADD  CONSTRAINT [FK_QAS_Input_QAS_Operation] FOREIGN KEY([fkOperation])
REFERENCES [dbo].[QAS_Operation] ([pkOperation])
GO
ALTER TABLE [dbo].[QAS_Input] CHECK CONSTRAINT [FK_QAS_Input_QAS_Operation]
GO
/****** Object:  ForeignKey [FK_QAS_Input_QAS_Section]    Script Date: 07/21/2010 16:30:37 ******/
ALTER TABLE [dbo].[QAS_Input]  WITH CHECK ADD  CONSTRAINT [FK_QAS_Input_QAS_Section] FOREIGN KEY([fkSection])
REFERENCES [dbo].[QAS_Section] ([pkSection])
GO
ALTER TABLE [dbo].[QAS_Input] CHECK CONSTRAINT [FK_QAS_Input_QAS_Section]
GO
/****** Object:  ForeignKey [FK_QAS_Input_QAS_Team]    Script Date: 07/21/2010 16:30:37 ******/
ALTER TABLE [dbo].[QAS_Input]  WITH CHECK ADD  CONSTRAINT [FK_QAS_Input_QAS_Team] FOREIGN KEY([fkTeam])
REFERENCES [dbo].[QAS_Team] ([pkTeam])
GO
ALTER TABLE [dbo].[QAS_Input] CHECK CONSTRAINT [FK_QAS_Input_QAS_Team]
GO

解决方案 »

  1.   

    程序可以做成时treeview的菜单形式,可以一次都读取所有的数据,点击某一项时过滤掉其他无用的数据就ok了。
      

  2.   

    程序方面,只做单击等操作,如何显示数据都交给我们dba写存储过程代码啦~~~  请问存储过程方面怎么设计啊? 
      

  3.   

    你这个要解决两个问题,一个表设计,二是程序的设计表设计要设计为父子表的关系(level,father_id,child_id,name)