Proyectos - Biblioteca - Enunciados

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:

Enlace a ejemplo

Comentarios

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";

Biblioteca 1 - Menús

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.

Biblioteca - Inicio

Biblioteca - Obras

Biblioteca - Usuarios

Biblioteca - Préstamos

Biblioteca 2 - Menús Obras y Usuarios

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.

Biblioteca - Obras - Añadir 1

Título:
Autor:
Editorial:

Biblioteca - Usuarios - Añadir 1

Nombre:
Apellidos:
DNI:

Biblioteca 3 - Menú préstamos

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:

Biblioteca - Préstamos - Nuevo préstamo 1

Seleccione obra y usuario e indique la fecha del préstamo:

Datos del nuevo préstamo
Usuario Obra Fecha de préstamo (dd-mm-aaaa)

Biblioteca - Préstamos - Listar

Listado de préstamos
A-Z Usuario Z-A A-Z Título Z-A 0-9 Préstamo 9-0 0-9 Devolución 9-0
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

Biblioteca - Préstamos - Devolución 1

Seleccione el préstamo e indique la fecha de devolución:

Listado de préstamos pendientes
A-Z Usuario Z-A - A-Z Título Z-A - 0-9 Préstamo 9-0 Devolución (dd-mm-aaaa)

Biblioteca - Préstamos - Borrar 1

Listado de préstamos
Borrar A-Z Usuario Z-A A-Z Título Z-A 0-9 Préstamo 9-0 0-9 Devolución 9-0
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