Crear una vista (2009-0902)

02/09/2009 - 20:40 por Mauricio | Informe spam
Hola a todos,
tengo 2 tablas, ARCHIVOS y PROYECTOS. Los ARCHIVOS pertenecen a un
PROYECTO. A su vez la tabla PROYECTOS está relacionada consigo misma
dado que representa una estructura en árbol, como las carpetas del
sistema operativo.
Se puede hacer una vista que me genere que me muestre algo así:

NOMBRE PROYECTO ARCHIVO
Contable
Contable/Fuentes Principal.app
Contable/Fuentes Funciones.app
Contable/Fuentes/Backup Old_Funciones.app
Contable/Imagenes Cliente.ico
Contable/Imagenes Logo.bmp

Las estructuras de las tablas es la siguiente:

CREATE TABLE [dbo].[ARCHIVOS](
[IdArchivo] [int] IDENTITY(1,1) NOT NULL,
[IdProyecto] [int] NOT NULL,
[Nombre] [varchar](128) NOT NULL,
[Tamanio] [int] NULL,
[Tipo] [tinyint] NULL,
[Comentario] [varchar](5000) NULL,
[Borrado] [tinyint] NOT NULL,
[Fecha] [datetime] NULL,
[Archivo] [image] NULL,
[IdUsuario] [int] NULL,
[FechaCreacion] [datetime] NULL,
CONSTRAINT [PK_ARCHIVOS] PRIMARY KEY CLUSTERED
(
[IdArchivo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY
= OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

CREATE TABLE [dbo].[PROYECTOS](
[IDProyecto] [int] IDENTITY(1,1) NOT NULL,
[Nombre] [varchar](50) NOT NULL,
[Comentario] [varchar](5000) NULL,
[IdPadre] [int] NOT NULL,
[Nivel] [tinyint] NULL,
[IdUsuario] [int] NULL,
[Fecha] [datetime] NULL,
[Mojon] [tinyint] NULL,
[NUMEROHISTORIA] [int] NULL,
[NoEnviarNotificacionesVCS] [tinyint] NULL,
[NoEnviarNotificacionesITS] [tinyint] NULL,
CONSTRAINT [PK_PROYECTOS] PRIMARY KEY CLUSTERED
(
[IDProyecto] 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

Espero haber sido lo suficientemente claro. Gracias a todos por su
ayuda.
Saludos.


Mauricio
Copenhague, Dinamarca
 

Leer las respuestas

#1 Ruben Garrigos
02/09/2009 - 22:20 | Informe spam
Hola Mauricio,

Te recomiendo que te plantees el uso de una CTE recursiva. Para más información
sobre éstas: http://msdn.microsoft.com/es-es/lib...86243.aspx

Un saludo,

Rubén Garrigós
Solid Quality Mentors

Blog: http://blogs.solidq.com/es/elrincondeldba

Hola a todos,
tengo 2 tablas, ARCHIVOS y PROYECTOS. Los ARCHIVOS pertenecen a un
PROYECTO. A su vez la tabla PROYECTOS está relacionada consigo misma
dado que representa una estructura en árbol, como las carpetas del
sistema operativo.
Se puede hacer una vista que me genere que me muestre algo así:
NOMBRE PROYECTO ARCHIVO
Contable
Contable/Fuentes Principal.app
Contable/Fuentes Funciones.app
Contable/Fuentes/Backup Old_Funciones.app
Contable/Imagenes Cliente.ico
Contable/Imagenes Logo.bmp
Las estructuras de las tablas es la siguiente:

CREATE TABLE [dbo].[ARCHIVOS](
[IdArchivo] [int] IDENTITY(1,1) NOT NULL,
[IdProyecto] [int] NOT NULL,
[Nombre] [varchar](128) NOT NULL,
[Tamanio] [int] NULL,
[Tipo] [tinyint] NULL,
[Comentario] [varchar](5000) NULL,
[Borrado] [tinyint] NOT NULL,
[Fecha] [datetime] NULL,
[Archivo] [image] NULL,
[IdUsuario] [int] NULL,
[FechaCreacion] [datetime] NULL,
CONSTRAINT [PK_ARCHIVOS] PRIMARY KEY CLUSTERED
(
[IdArchivo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY
= OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] )
ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

CREATE TABLE [dbo].[PROYECTOS](
[IDProyecto] [int] IDENTITY(1,1) NOT NULL,
[Nombre] [varchar](50) NOT NULL,
[Comentario] [varchar](5000) NULL,
[IdPadre] [int] NOT NULL,
[Nivel] [tinyint] NULL,
[IdUsuario] [int] NULL,
[Fecha] [datetime] NULL,
[Mojon] [tinyint] NULL,
[NUMEROHISTORIA] [int] NULL,
[NoEnviarNotificacionesVCS] [tinyint] NULL,
[NoEnviarNotificacionesITS] [tinyint] NULL,
CONSTRAINT [PK_PROYECTOS] PRIMARY KEY CLUSTERED
(
[IDProyecto] 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

Espero haber sido lo suficientemente claro. Gracias a todos por su
ayuda.
Saludos

Preguntas similares