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

como hacer la relación entre tablas de prestamo-libro-usuario

Estas en el tema de como hacer la relación entre tablas de prestamo-libro-usuario en el foro de Bases de Datos General en Foros del Web. hola gente, aca con esta duda, tengo la tabla usuario id_usuario nombre bla bla la tabla libro id_libro titulo autor bla bla la tabla prestamo ...
  #1 (permalink)  
Antiguo 13/03/2012, 10:39
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años
Puntos: 23
como hacer la relación entre tablas de prestamo-libro-usuario

hola gente,

aca con esta duda,

tengo la tabla usuario

id_usuario
nombre
bla bla

la tabla libro

id_libro
titulo
autor
bla bla

la tabla prestamo

id_prestamo
id_usuario
id_libro
fecha_prestamo
fecha_devolucion

pero como podran notar la logica que sigue esto, es que en un prestamo a un usuario solo se podra prestar un libro, lo cual es erroneo, ya que en un prestamo debe poderse prestar mas de un libro al usuario

entonces trate de plantearme la solucion, saque el id libro de la tabla prestamo y cree una tabla temporal de prestamo:


tabla prestamo

id_prestamo
id_usuario
fecha_prestamo
fecha_devolucion

tabla pre_prestamo

id_pre_prestamo
id_prestamo (llave foranea)
id_libro

pero ya no se como implementarlo, en que tabla guardo primero? porque si guardara primero en pre_prestamo como sabria el id_prestamo? y si guardo primero en prestamo como agrego los libros??

o como se debe plantear esto?? estoy echa bolas

gracias
  #2 (permalink)  
Antiguo 13/03/2012, 10:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: como hacer la relación entre tablas de prestamo-libro-usuario

Cita:
pero ya no se como implementarlo, en que tabla guardo primero? porque si guardara primero en pre_prestamo como sabria el id_prestamo? y si guardo primero en prestamo como agrego los libros??
Te estás ahogando en un vaso de agua.
Razónalo: Si la lista de libros a prestar a un usuario dependen de la cabecera de la tabla préstamo, entonces es esa tabla la que debes cargar primero.
Luego, una vez que recuperas el ID generado de la cabecera (para eso existen funciones en MySQL y también en los lenguajes de programación), se carga la lista, utilizando ese valor como parte de la clave.
La tabla de detalle no debe tener una PK propia en el sentido estricto, sino una compuesta por la FK, mas un incremental que se reinicia por cada préstamo distinto, y que representa en definitiva, los numeros de renglones del detalle.
¿Se entiende?
Es exactamente lo mismo que cuando almacenas una factura de productos vendidos en un supermercado. Lo único que cambian son los nombres de las tablas y los atributos, pero el principio es el mismo: Maestro - Detalle.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 13/03/2012, 11:05
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años
Puntos: 23
Respuesta: como hacer la relación entre tablas de prestamo-libro-usuario

pero entonces la tabla pre_prestamo esta bien planteada?

seria por ejemplo, Prestar libro:

id_usuario..........................12
fecha_prestamo.................13-03-2012
fecha_devolucion...............18-03-2012

hago el insert

traigo el id generado:

id_prestamo................1

busco el libro

id_prestamo........................1
id_libro................................100

hago insert

id_pre_prestamo.................1

busco otro libro

id_prestamo........................1
id_libro................................450

hago otro insert

id_pre_prestamo.................2

asi seria?
  #4 (permalink)  
Antiguo 13/03/2012, 11:06
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años
Puntos: 23
Respuesta: como hacer la relación entre tablas de prestamo-libro-usuario

pero entonces la tabla pre_prestamo esta bien planteada?

seria por ejemplo, Prestar libro:

id_usuario..........................12
fecha_prestamo.................13-03-2012
fecha_devolucion...............18-03-2012

hago el insert

traigo el id generado:

id_prestamo................1

busco el libro

id_prestamo........................1
id_libro................................100

hago insert

id_pre_prestamo.................1

busco otro libro

id_prestamo........................1
id_libro................................450

hago otro insert

id_pre_prestamo.................2

asi seria?

Última edición por catpaw; 13/03/2012 a las 11:12 Razón: no se porque se duplico el mensaje :-S
  #5 (permalink)  
Antiguo 13/03/2012, 11:19
Avatar de liloo6retug  
Fecha de Ingreso: junio-2010
Ubicación: Marsella
Mensajes: 109
Antigüedad: 13 años, 10 meses
Puntos: 11
Respuesta: como hacer la relación entre tablas de prestamo-libro-usuario

creo que te sale mejor asi

usuario(id,nombre,...)
autor(id,nombre)
editorial(id,nombre,direcion,..)
libro(id,codigolibro,#ejemplar,volumen,#hojas,idau tor,ideditorial,añoimpreso,...)
....

lo del prestamo seria mejor asi..
prestamo(id,fechasolicitud,fechaentrega,idusuario) solo un id de prestamo y varios detalles estilo una factura..
detalleprestamo(id,idprestamo,idlibro)
  #6 (permalink)  
Antiguo 13/03/2012, 11:24
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años
Puntos: 23
Respuesta: como hacer la relación entre tablas de prestamo-libro-usuario

pues seria como si mi

id_pre_prestamo sea tu detalleprestamo(id,idprestamo,idlibro)

lo demas lo veo igual

si sera necesario sacar en otras tablas

el autor
la editorial
la clasificacion

incluso tambien podria

el año
la edicion

entonces la logica que puse antes esta bien?
  #7 (permalink)  
Antiguo 13/03/2012, 11:29
Avatar de liloo6retug  
Fecha de Ingreso: junio-2010
Ubicación: Marsella
Mensajes: 109
Antigüedad: 13 años, 10 meses
Puntos: 11
Respuesta: como hacer la relación entre tablas de prestamo-libro-usuario

Cita:
Iniciado por liloo6retug Ver Mensaje
creo que te sale mejor asi

usuario(id,nombre,...)
autor(id,nombre)
editorial(id,nombre,direcion,..)
libro(id,codigolibro,#ejemplar,volumen,#hojas,idau tor,ideditorial,añoimpreso,...)
....

lo del prestamo seria mejor asi..
prestamo(id,fechasolicitud,fechaentrega,idusuario) solo un id de prestamo y varios detalles estilo una factura..
detalleprestamo(id,idprestamo,idlibro)

creo que te sale mejor asi

usuario(id,nombre,...)
autor(id,nombre)
editorial(id,nombre,direcion,..)
libro(id,codigolibro,#ejemplar,volumen,#hojas,idau tor,ideditorial,añoimpreso,...)
....
tipoestado(id,nombre) (esto seria para: en estante,en reparacion, dado de baja, prestado,...)
estadolibro(id,idlibro,idtipo) con eso al buscar un libro solo es generar un formulario y consultar su estado si hay control...en el caso de que no hayan en el estante
tambien seria mirar el tipo de prestamo (interno (algunas horas), externo (varios dias))

y
lo del prestamo seria mejor dejarlo asi como lo planteas..lo anterior es para que quede mejor normalizado
prestamo(id,fechasolicitud,fechaentrega,idusuario) solo un id de prestamo y varios detalles estilo una factura..
detalleprestamo(id,idprestamo,idlibro)

en que lenguaje y ambiente lo desarrollas?
  #8 (permalink)  
Antiguo 13/03/2012, 11:30
Avatar de liloo6retug  
Fecha de Ingreso: junio-2010
Ubicación: Marsella
Mensajes: 109
Antigüedad: 13 años, 10 meses
Puntos: 11
Respuesta: como hacer la relación entre tablas de prestamo-libro-usuario

Cita:
Iniciado por catpaw Ver Mensaje
pues seria como si mi

id_pre_prestamo sea tu detalleprestamo(id,idprestamo,idlibro)

lo demas lo veo igual

si sera necesario sacar en otras tablas

el autor
la editorial
la clasificacion

incluso tambien podria

el año
la edicion

entonces la logica que puse antes esta bien?
si esta bien tu logica
  #9 (permalink)  
Antiguo 13/03/2012, 11:35
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años
Puntos: 23
Respuesta: como hacer la relación entre tablas de prestamo-libro-usuario

gracias liloo6retug

no habia contemplado esto

Cita:
tipoestado(id,nombre) (esto seria para: en estante,en reparacion, dado de baja, prestado,...)
estadolibro(id,idlibro,idtipo) con eso al buscar un libro solo es generar un formulario y consultar su estado si hay control...en el caso de que no hayan en el estante
tambien seria mirar el tipo de prestamo (interno (algunas horas), externo (varios dias))
Cita:
en que lenguaje y ambiente lo desarrollas?
estoy en php y mysql

y ese es otro dilema que tengo, ya que no se como hacer (en la programacion) que se pueda escoger mas de un libro,

lo que tenia pensado era:

1. buscar el usuario
2. tomar la id_usuario en variable y buscar el libro
3. tomar id_libro en variable y pasarla junto a la id_usuario
4. insertar las id y la demas info

pero para agregar otro libro seria repetir desde paso 2

lo malo es que en php todo estos pasos se deben hacer en paginas diferentes y siento que estoy haciendo demasiadas para algo tan sencillo

que opinan?
  #10 (permalink)  
Antiguo 13/03/2012, 11:44
Avatar de liloo6retug  
Fecha de Ingreso: junio-2010
Ubicación: Marsella
Mensajes: 109
Antigüedad: 13 años, 10 meses
Puntos: 11
Respuesta: como hacer la relación entre tablas de prestamo-libro-usuario

formulario
parte 1
- las fechas,
parte 2
- buscas al usuario.. ya sea por ide o un campo de texto que se autocomplete el nombre
parte 3
-buscas el libro por el codigo interno o nombre
y que te salga una ventana con la opcion para que escojas el ejemplar del libro
una vez seleccionado debe aparecer en (parte 4)
parte 4
- y en el detalle del prestamo una tabla con los libros y una opcion de borrar la seleccion
parte 5
....
  #11 (permalink)  
Antiguo 13/03/2012, 11:50
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años
Puntos: 23
Respuesta: como hacer la relación entre tablas de prestamo-libro-usuario

si es mas o menos lo que tenia pensado, lo único es que deberé valerme de alguna ayudadita de ajax o jquery para que no se haga tan tedioso en php,

ya veo en la parte 4, en el detalle del préstamo la tabla que me dices (con los libros) debería ser como un carrito de compra, con agregar o quitar,

uff me espera una larga programada

gracias liloo6retug y gnzsoloyo por su ayuda
  #12 (permalink)  
Antiguo 13/03/2012, 11:52
Avatar de liloo6retug  
Fecha de Ingreso: junio-2010
Ubicación: Marsella
Mensajes: 109
Antigüedad: 13 años, 10 meses
Puntos: 11
Respuesta: como hacer la relación entre tablas de prestamo-libro-usuario

Cita:
Iniciado por catpaw Ver Mensaje
si es mas o menos lo que tenia pensado, lo único es que deberé valerme de alguna ayudadita de ajax o jquery para que no se haga tan tedioso en php,

ya veo en la parte 4, en el detalle del préstamo la tabla que me dices (con los libros) debería ser como un carrito de compra, con agregar o quitar,

uff me espera una larga programada

gracias liloo6retug y gnzsoloyo por su ayuda
ok..cualquier cosa..estaré pendiente en estos dias..
  #13 (permalink)  
Antiguo 13/03/2012, 11:54
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años
Puntos: 23
Respuesta: como hacer la relación entre tablas de prestamo-libro-usuario

gracias :D

Etiquetas: tabla, tablas
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:32.