El objetivo de este proyecto es crear una programa de gestión de bibliotecas muy elemental, que almacene datos sobre los usuarios, las obras disponibles y los préstamos realizados.
Un ejemplo de biblioteca puede probarse en la ventana siguiente:
Estas pueden ser las consultas de creación de tablas para este proyecto:
// Tamaño de los campos en la tabla define("TAM_TITULO", 50); // Tamaño del campo Obras > Título define("TAM_AUTOR", 50); // Tamaño del campo Obras > Autor define("TAM_EDITORIAL", 50); // Tamaño del campo Obras > Editorial define("TAM_NOMBRE", 50); // Tamaño del campo Usuarios > Nombre define("TAM_APELLIDOS", 50); // Tamaño del campo Usuarios > Apellidos define("TAM_DNI", 10); // Tamaño del campo Usuarios > DNI define("TAM_FECHA", 10); // Tamaño del campo Préstamo > Fecha // Consultas de creación de tablas en MySQL $consultaCreaTablaObras = "CREATE TABLE $dbObras ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, autor VARCHAR(" . TAM_AUTOR . "), titulo VARCHAR(" . TAM_TITULO . "), editorial VARCHAR(" . TAM_EDITORIAL . "), PRIMARY KEY(id) )"; $consultaCreaTablaUsuarios = "CREATE TABLE $dbUsuarios ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nombre VARCHAR(" . TAM_NOMBRE . "), apellidos VARCHAR(" . TAM_APELLIDOS . "), dni VARCHAR(" . TAM_DNI . "), PRIMARY KEY(id) )"; $consultaCreaTablaPrestamos = "CREATE TABLE $dbPrestamos ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, id_usuario INTEGER UNSIGNED, id_obra INTEGER UNSIGNED, prestado DATE, devuelto DATE, PRIMARY KEY(id) )"; // Consultas de creación de tablas en SQLite $consultaCreaTablaObras = "CREATE TABLE $dbObras ( id INTEGER PRIMARY KEY, autor VARCHAR(" . TAM_AUTOR . "), titulo VARCHAR(" . TAM_TITULO . "), editorial VARCHAR(" . TAM_EDITORIAL . ") )"; $consultaCreaTablaUsuarios = "CREATE TABLE $dbUsuarios ( id INTEGER PRIMARY KEY, nombre VARCHAR(" . TAM_NOMBRE . "), apellidos VARCHAR(" . TAM_APELLIDOS . "), dni VARCHAR(" . TAM_DNI . ") )"; $consultaCreaTablaPrestamos = "CREATE TABLE $dbPrestamos ( id INTEGER PRIMARY KEY, id_usuario INTEGER UNSIGNED, id_obra INTEGER UNSIGNED, prestado DATE, devuelto DATE )";
Y esta puede ser la consulta que enlaza las tres tablas:
$consulta = "SELECT $dbPrestamos.id AS id, $dbUsuarios.nombre as nombre, $dbUsuarios.apellidos as apellidos, $dbObras.titulo as titulo, $dbPrestamos.prestado as prestado, $dbPrestamos.devuelto as devuelto FROM $dbPrestamos, $dbUsuarios, $dbObras WHERE $dbPrestamos.id_usuario=$dbUsuarios.id AND $dbPrestamos.id_obra=$dbObras.id ORDER BY $campo $orden";
El programa de biblioteca tendrá un menú principal y tres submenús para Obras, Usuarios y Préstamos. Mínimamente utilizable, la agenda debe permitir añadir registros, listarlos y borrar todos los registros.
Los menús de Obras y Usuarios tienen las mismas opciones que la agenda de teléfonos.
Nota: Al borrar una obra o un usuario, deben borrarse también los préstamos correspondientes.
Título: | |
Autor: | |
Editorial: |
Nombre: | |
Apellidos: | |
DNI: |
El menú de Préstamos permite crear un nuevo préstamo e indicar la fecha de devolución, así como listar todos los préstamos y borrarlos.
Notas:
No sé si esto daría problemas en otras bases de datos
Seleccione obra y usuario e indique la fecha del préstamo:
Usuario | Obra | Fecha de préstamo (dd-mm-aaaa) |
---|---|---|
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
---|---|---|---|
Pepito Conejo | La náusea | 01-0-/2005 | 02/02/2005 |
Bruce Kane | Novelas ejemplares | 03-03-2005 | |
Clark Kent | El extranjero | 03-02-2005 |
Seleccione el préstamo e indique la fecha de devolución:
![]() ![]() ![]() ![]() ![]() ![]() |
Devolución (dd-mm-aaaa) |
---|---|
Borrar | ![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
---|---|---|---|---|
Pepito Conejo | La náusea | 01-01-2005 | 02-02-2005 | |
Bruce Kane | Novelas ejemplares | 03-03-2005 | 10-03-2005 | |
Clark Kent | El extranjero | 03-02-2005 |