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

Diseño de un modelo relacional

Estas en el tema de Diseño de un modelo relacional en el foro de Oracle en Foros del Web. Hola, espero alguien me pueda ayudar dando su opinion, en este momento me encuentro diseñando un modelo relacional para un pequeño sistema de una biblioteca ...
  #1 (permalink)  
Antiguo 05/03/2008, 08:57
 
Fecha de Ingreso: marzo-2008
Mensajes: 3
Antigüedad: 16 años, 2 meses
Puntos: 0
Diseño de un modelo relacional

Hola, espero alguien me pueda ayudar dando su opinion, en este momento me encuentro diseñando un modelo relacional para un pequeño sistema de una biblioteca y me encuentro con ligero problema, y no se si la propuesta q tengo sea la mas correcta y eficiente.

En la biblioteca se le pueden prestar libros a 2 tipos de personas estudiantes o profesores y cada uno debe de ir en tablas diferentes, ahora bien la tabla de prestamos de libros debe de estar relacionada con la llave primaria de ya sea el profesor o el estudiante (en ambos casos es la cedula). La solucion que por ahora tengo es tener una tabla Usuario que solo guarde la cedula tanto de profesores como de estudiantes, esto para tener una sola tabla que se pueda relacionar con la de prestamos, queria saber si es esto eficiente o si hay una mejor opcion????

Orientado a Objetos es facil porq esto se manejaria con herencia, pero a la hora de pasarlo a un modelo relacional no se puede hacer de la misma forma.

Gracias
  #2 (permalink)  
Antiguo 05/03/2008, 10:20
Avatar de Osirapis  
Fecha de Ingreso: abril-2006
Ubicación: Granada - Sevilla. (la Tierra)
Mensajes: 89
Antigüedad: 18 años, 1 mes
Puntos: 0
¿Y una vista?

Mi consejo es que te crees una vista que contenga los datos necesarios de ambas tablas.

Como es de esperar, los datos a unir deben ser iguales (aunque hay excepciones) en ambas tablas.

Ej.: CREATE OR REPLACE VIEW USUARIOS_VW AS SELECT CEDULA FROM ESTUDIANTES UNION SELECT CEDULA FROM PROFESORES;

En cada SELECT puedes poner lo que quieras, por si te hace falta filtrar alguna tabla.
Ej.: CREATE OR REPLACE VIEW USUARIOS_VW AS SELECT CEDULA FROM ESTUDIANTES WHERE COD_DEPT = '002' UNION SELECT CEDULA FROM PROFESORES;


Un saludo.
__________________
Solo hay 10 tipos de personas: los que saben binario y los que no. ; )P
  #3 (permalink)  
Antiguo 05/03/2008, 13:33
 
Fecha de Ingreso: marzo-2008
Mensajes: 3
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Diseño de un modelo relacional

Creo q no me di a entender, la factura va a estar relacionada o un profesor o a un estudiante, pero nunca a los 2 y como tengo a los 2 en tablas distintas, seria pesimo que coloque 2 llaves foraneas en factura si en todos los casos siempre voy a ulizar solo una...
por eso pense en hacer una tabla que contenga solo las cedula (llaves primarias tanto de la tabla profesor como de estudiantes, esto porq nunca se van a repetir) para poder tener una unica tabla que se relacione con el prestamo
  #4 (permalink)  
Antiguo 06/03/2008, 02:05
Avatar de Osirapis  
Fecha de Ingreso: abril-2006
Ubicación: Granada - Sevilla. (la Tierra)
Mensajes: 89
Antigüedad: 18 años, 1 mes
Puntos: 0
Creo que el que se explicó mal fuí yo

Donde dije:
Cita:
[...]los datos a unir deben ser iguales[...]
...me refería a "igual TIPO".

Con la vista consigues la misma funcionalidad que con una tabla pero evitando la duplicidad de datos.

Es dinámica, puesto que si modificas una de las tablas de las que provienen éstos se actualiza la vista (excepto en las vistas materializadas).

Y consigues la abstracción, de las tablas originales, que estás buscando.


Un saludo.
__________________
Solo hay 10 tipos de personas: los que saben binario y los que no. ; )P
  #5 (permalink)  
Antiguo 07/03/2008, 10:54
 
Fecha de Ingreso: marzo-2008
Mensajes: 3
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Diseño de un modelo relacional

Quiere decir que entonces yo puedo relacionar una tabla asignandole como llave foranea la llave principal de una vista???????????
  #6 (permalink)  
Antiguo 10/03/2008, 10:14
Avatar de Osirapis  
Fecha de Ingreso: abril-2006
Ubicación: Granada - Sevilla. (la Tierra)
Mensajes: 89
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Diseño de un modelo relacional

Eso parece:

Cita:
A foreign key is a column or group of columns in one table or view whose values provide a reference to the rows in another table or view. A foreign key generally contains a value that matches a primary key value in another table.
http://download.oracle.com/docs/html..._01/sqglos.htm

Un saludo.
__________________
Solo hay 10 tipos de personas: los que saben binario y los que no. ; )P
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:51.