Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

crear una relacion entre entidades

Estas en el tema de crear una relacion entre entidades en el foro de Oracle en Foros del Web. Buenas Tengo un trabajo de la universidad y como recién empiezo en este gran mundo, tengo unos problemas para relacionar entidades. Lo que quiero es ...
  #1 (permalink)  
Antiguo 15/11/2015, 01:17
 
Fecha de Ingreso: noviembre-2015
Mensajes: 1
Antigüedad: 8 años, 5 meses
Puntos: 0
Exclamación crear una relacion entre entidades

Buenas
Tengo un trabajo de la universidad y como recién empiezo en este gran mundo, tengo unos problemas para relacionar entidades.
Lo que quiero es recrear esta grafica en Oracle

y avance todo esto.

Pero cuando trato de relacionar la entidad PAGO con MATRICULA con el atributo (idcurso)

este el codigo que use en todo .

Código:
CREATE TABLE ALUMNO (
idalumno number (4) not null primary key,
nombrealumno char (20) not null,
direccion varchar (50) not null,
telefono char (9) ) ;


create table curso (
idcurso char (4) not null primary key,
nombrecurso varchar (50) not null unique,
numvacantes number (4) not null,
nummatriculados number (2) null,
profesor varchar (50) null,
preciocurso float (8)
);

create table pago (
idcurso char (4) not null ,
idalumno number (4) not null  ,
cuotanumero number (4) not null  ,
fecha date  null,
importe float (8)
);


create table matricula (
idcurso char (4) not null ,
idalumno number (4) not null  ,
fecha date  not null,
precio float (8) not null,
numcuotas number (2) not null,
notacurso decimal (9) null
);

-- agregando pk
alter table pago 
add constraint pk_pagooo
primary key (idcurso , idalumno , cuotanumero);

alter table matricula
add constraint pk_matrricula
primary key ( idcurso, idalumno );

--rela.

alter table matricula
add constraint fk_alummmno
foreign key (idalumno)
references alumno (idalumno);

alter table matricula
add constraint fk_cuurso
foreign key (idcurso)
references curso (idcurso);
y este el codigo que uso para la nueva relacion
Código:
alter table pago
add constraint fk_cuursos
foreign key (idcurso)
references pago (idcurso)
Me sale el siguiente error.

Código:
Error starting at line 1 in command:
alter table pago
add constraint fk_cuursos
foreign key (idcurso)
references pago (idcurso)
Error report:
SQL Error: ORA-02270: no hay ninguna clave única o primaria correspondiente para esta lista de columnas
02270. 00000 -  "no matching unique or primary key for this column-list"
*Cause:    A REFERENCES clause in a CREATE/ALTER TABLE statement
           gives a column-list for which there is no matching unique or primary
           key constraint in the referenced table.
*Action:   Find the correct column names using the ALL_CONS_COLUMNS
           catalog view
Y es ahí donde me gustaría pedirles ayuda.

Última edición por freesoftandskate; 15/11/2015 a las 01:27
  #2 (permalink)  
Antiguo 17/11/2015, 01:06
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: crear una relacion entre entidades

Te lo está diciendo bien claro : "no matching unique or primary key for this column-list"

La pk de la tabla pago la forman (idcurso , idalumno , cuotanumero) y tu quieres enganchar una fk solo al id_curso.

La fk la tienes que enganchar a idcurso , idalumno , cuotanumero

Etiquetas: entidad, key, primary
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:46.