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) |
---|---|---|
Usuario | Título | Préstamo | Devolución |
---|---|---|---|
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:
Usuario - Título - Préstamo | Devolución (dd-mm-aaaa) |
---|---|
Borrar | Usuario | Título | Préstamo | Devolución |
---|---|---|---|---|
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 |