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 |
Esta obra está bajo una licencia de Creative
Commons Reconocimiento-CompartirIgual 3.0 España.