Urgente! Oracle-PL/SQL-Nested tables – Ej.Gimnasio
Hola!
Tengo que ‘traducir’ el siguiente esquema de base de datos de la gestión de un Gimnasio (socios y las actividades que se han apuntado) a Nested Tables y no se como hacerlo.
Me podéis ayudar? Os estaría muy agradecida!!!
He creado el tipo Persona que luego lo hereda el Tipo Socio.
CREATE or REPLACE TYPE T_Socio UNDER T_Persona ( Inicial_year int NOT NULL);
Luego he creado una tabla con la informació de los Socios.
CREATE TABLE Table_Socios (Id Char(9) PRIMARY KEY, Socio T_Socio);
— ESQUEMA INICIAL —
CREATE TABLE Actividad (
codigo Varchar (5) PRIMARY KEY,
Nombre Varchar (20) unique,
Nivel int
);
CREATE TABLE Actividad_Grupo (
Grupo_num int,
codigo_actividad varchar(5),
PRIMARY KEY(Grupo_num, codigo_actividad),
FOREIGN KEY (codigo_actividad) REFERENCES Actividad
);
CREATE TABLE Actividad_Grupo_Inscripcion(
Grupo_num int,
codigo_actividad varchar(5),
Socio_id char(9),
PRIMARY KEY (Grupo_num, codigo_actividad, Socio_id),
FOREIGN KEY (Grupo_num, codigo_actividad)
REFERENCES Actividad_Grupo,
FOREIGN KEY (Socio_id) REFERENCES Socio
);
Y luego quieren un control de la asistencia:
CREATE TABLE Asistencia (
codigo_actividad varchar(5),
Socio_id char(9),
Periodo_Actividad char(5),
Asistencia char(2),
PRIMARY KEY(codigo_actividad, Socio_id, Periodo_Actividad),
FOREIGN KEY (codigo_actividad) REFERENCES Actividad,
FOREIGN KEY (Socio_id) REFERENCES Socio);
—— ESQUEMA CON LAS NESTED TABLES —
Ahora viene cuando no se si voy bien o mal encaminada:
CREATE or REPLACE TYPE T_Actividad AS OBJECT (Codigo varchar (5), Nombre varchar (20), Nivel int ) NOT FINAL;
CREATE or REPLACE TYPE Table_Actividad AS TABLE OF T_Actividad;
CREATE or REPLACE TABLE Table_Actividad_Grupo (
Grupo_num int NOT NULL,
Actividad_codigo Table_Actividad)
NESTED TABLE Actividad_codigo STORE AS NT_Actividad_codigo;
y no se como relacionar la Table_Actividad_Grupo con la de Socios, y tampoco relacionar los Socios, con las actividades y la asistencia.
Finalmente, lo que se necesita es una vista de los socios que hacen una determinada Actividad y no tienen Asistencia indicada.
Y otra vista de cada actividad con el total de socios inscritos en cada una de ellas.
Muchas gracias de antemano!!!
María.