Oracle - Urgente! Nested tables - Ejemplo Gimnasio

   
Vista:

Urgente! Nested tables - Ejemplo Gimnasio

Publicado por Maria (1 intervención) el 15/10/2012 13:17:26
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);


Ahora viene cuando no se ni como empezar ¿?

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);


Muchas gracias!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Urgente! Nested tables - Ejemplo Gimnasio

Publicado por Luis (232 intervenciones) el 20/01/2013 04:49:14
Un ejemplo:

In the following example, you pass multiple elements to the constructor CourseList(), which returns a nested table containing those elements:

DECLARE

TYPE CourseList IS TABLE OF VARCHAR2(16);
my_courses CourseList;

BEGIN
my_courses := CourseList('Econ 2010','Acct 3401','Mgmt 3100');
END;
/

Because a PL/SQL table does not have a declared maximum size, you can put as many elements in the constructor as necessary.

DECLARE

TYPE CourseList IS TABLE OF VARCHAR2(16);
my_courses CourseList;

BEGIN
my_courses := CourseList('Econ 2010','Acct 3401','Mgmt 3100');
my_courses := CourseList('Math 2022','Acct 3431','Mgmt 3100');
my_courses := CourseList('Phys 2299','Chem 9876');
my_courses := CourseList('Food 9999');
my_courses := CourseList('Orcl 3456','Math 3434','Hist 1040');
END;
/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar