Componentes - UESSalexmendoza/Diseno-Software GitHub Wiki
📚 Plataforma de Trueque de Libros – Modelado de Base de Datos
Este repositorio contiene el modelado de la base de datos para la Plataforma de Trueque de Libros entre Estudiantes desarrollada con Django + MySQL como parte del proyecto universitario UEES – Equipo 8.
🎯 Propósito del Modelado
Organizar de manera estructurada los datos de usuarios, libros, contactos y catálogos auxiliares, permitiendo la correcta operación del sistema de publicación e intercambio de libros.
🏗️ Entidades Principales
Entidad | Descripción |
---|---|
Perfil | Define el tipo de usuario (Administrador, Estudiante). |
Usuario | Representa a los estudiantes registrados en la plataforma. |
Libro | Publicaciones de libros disponibles para trueque. |
CategoriaLibro | Ámbito o temática del libro (Historia, Ciencia, Matemáticas, etc.). |
EstadoLibro | Condición física del libro (Nuevo, Buen Estado, Aceptable, etc.). |
TipoContacto | Formas de contacto habilitadas (Formulario, Correo electrónico, WhatsApp). |
MensajeContacto | Mensajes enviados por usuarios interesados en intercambiar un libro. |
🔗 Relaciones entre Entidades
- Usuario pertenece a un Perfil.
- Libro es publicado por un Usuario.
- Libro está clasificado en una Categoría y tiene un Estado.
- MensajeContacto conecta un Usuario interesado con un Libro publicado.
- Usuario puede tener definido un Tipo de contacto (opcional).
🛠️ Script de Creación de Tablas (MySQL)
-- Creación de tabla Perfil
CREATE TABLE Perfil (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(50) NOT NULL
);
-- Creación de tabla Usuario
CREATE TABLE Usuario (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
correo VARCHAR(100) NOT NULL UNIQUE,
contrasena VARCHAR(255) NOT NULL,
perfil_id INT NOT NULL,
FOREIGN KEY (perfil_id) REFERENCES Perfil(id)
);
-- Creación de tabla CategoriaLibro
CREATE TABLE CategoriaLibro (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL
);
-- Creación de tabla EstadoLibro
CREATE TABLE EstadoLibro (
id INT AUTO_INCREMENT PRIMARY KEY,
descripcion VARCHAR(100) NOT NULL
);
-- Creación de tabla TipoContacto
CREATE TABLE TipoContacto (
id INT AUTO_INCREMENT PRIMARY KEY,
descripcion VARCHAR(100) NOT NULL
);
-- Creación de tabla Libro
CREATE TABLE Libro (
id INT AUTO_INCREMENT PRIMARY KEY,
titulo VARCHAR(150) NOT NULL,
autor VARCHAR(100) NOT NULL,
categoria_id INT NOT NULL,
estado_id INT NOT NULL,
usuario_id INT NOT NULL,
FOREIGN KEY (categoria_id) REFERENCES CategoriaLibro(id),
FOREIGN KEY (estado_id) REFERENCES EstadoLibro(id),
FOREIGN KEY (usuario_id) REFERENCES Usuario(id)
);
-- Creación de tabla MensajeContacto
CREATE TABLE MensajeContacto (
id INT AUTO_INCREMENT PRIMARY KEY,
libro_id INT NOT NULL,
usuario_interesado_id INT NOT NULL,
mensaje TEXT NOT NULL,
fecha TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (libro_id) REFERENCES Libro(id),
FOREIGN KEY (usuario_interesado_id) REFERENCES Usuario(id)
);