database creation statement & er diagram

This commit is contained in:
devfzn 2023-08-19 21:27:02 -04:00
parent 4f98db0ad1
commit bdb78e6901
Signed by: devfzn
GPG Key ID: E070ECF4A754FDB1
4 changed files with 104 additions and 61 deletions

136
README.md
View File

@ -2,32 +2,16 @@
# Challenge ONE - Hotel Alura # Challenge ONE - Hotel Alura
[ToC]
### 🖥️ Tecnologías Utilizadas ### 🖥️ Tecnologías Utilizadas
- Java v17 - Java OpenJDK 17
- Eclipse - Eclipse
- Plugin WindowBuilder - Plugin WindowBuilder
- MySql - MySql
- Biblioteca JCalendar - Biblioteca JCalendar
- Biblioteca Dotenv - Biblioteca Dotenv
> **Note** Para este desafío, concéntrate en la parte lógica y la conexión <details><summary>Requerimientos</summary>
con la base de datos, después de completar el desafío, siéntete libre de
agregar nuevas funciones y modificar la interfaz gráfica.
### Proyeto base
Github [Hotel Alura](https://github.com/alura-challenges/challenge-one-alura-hotel-latam)
:small_orange_diamond: `src/views` Directorio con la interfaz gráfica
necesaria para el programa
:small_orange_diamond: `src/imagenes` Directorio con imágenes a usar en el
proyecto
### Requerimientos
- Sistema de autenticación de usuario para que solo usuarios autorizados accedan - Sistema de autenticación de usuario para que solo usuarios autorizados accedan
al sistema al sistema
@ -39,16 +23,15 @@ y al valor diario. Asignar en la moneda local de tu país; p.e. una reserva de 3
dias con valor diario de $20, serian $60, todo esto deberá ser hecho dias con valor diario de $20, serian $60, todo esto deberá ser hecho
automaticamente y mostrado al usuario antes de guardar la reserva automaticamente y mostrado al usuario antes de guardar la reserva
- Base de datos para almacenar todos los datos pedidos anteriormente. - Base de datos para almacenar todos los datos pedidos anteriormente.
- Ahora te preguntarás ¿Cómo se que datos debo registrar? Para eso el líder del - Diagrama de [Entidad Relación](#modelo-entidad-relación) para creación de
proyecto puso a disposición un Diagrama de Entidad Relación que usaremos para tablas en la base de Datos
crear las tablas en nuestra base de Datos y que está anexado a esta tarjeta - Periodo de tiempo de cuatro semanas para desarrollar el proyecto y por ello
y que también estará como una tarea en nuestro backlog. No olvides leer todas se facilita la parte visual del proyecto, para centrar el desarrollo de la
las tarjetas. lógica y funcionamiento, puedes hacer las modificaciones que creas convenientes.
- Periodo de tiempo de cuatro semanas para desarrollar el proyecto y por eso en Se trabaja usando el sistema ágil de desarrollo utilizando
esta oportunidad se facilota la parte visual del proyecto, para centrar el [Trello](https://trello.com/b/qMCaaWg4/g5-challenge-hotel)
desarrollo de la lógica y funcionamiento, puedes hacer las modificaciones que
creas convenientes, y se trabaja usando el sistema ágil de desarrollo utilizando </details>
Trello
## :construction: Proyecto ## :construction: Proyecto
@ -64,12 +47,12 @@ proyecto
├── 📁 bin ├── 📁 bin
├── 📁 src ├── 📁 src
├── 📁 target ├── 📁 target
├── .classpath ├── 📄 .classpath
├── .env <---- Dotenv file ├── 📄 .env <---- Dotenv file
├── .gitignore ├── 📄 .gitignore
├── .project ├── 📄 .project
├── pom.xml ├── 📄 pom.xml
└── README.md └── 📄 README.md
``` ```
Contenido de `.env` Contenido de `.env`
@ -84,42 +67,77 @@ DBPASS=password
#### Modelo entidad relación #### Modelo entidad relación
- **`huesped`** - **Tabla `HUESPED`**
- **`reserva`** clave externa (***foreign key***) **idReserva** - **Tabla `RESERVA`** - Foreign key *`id_huesped`*
```mermaid ```mermaid
erDiagram erDiagram
Huesped ||--|{ Reserva : tiene HUESPED ||..o{ RESERVA : tiene
Huesped { HUESPED {
Id int PK "NN NB" id int PK "NN"
Nombre varchar "bla bla" nombre varchar
Apellido varchar "bla bla" apellido varchar
Fecha_Nacimiento date "1931-12-20" fecha_nacimiento date "AAAA-MM-DD"
Nacionalidad varchar "CL" nacionalidad varchar
Telefono varchar telefono varchar "+00 123456789"
Id_Reserva int FK "bla bla"
} }
Reserva { RESERVA {
Id int PK "NN NB" Id int PK "NN"
Fecha_Entrada date "1931-12-20" fecha_entrada date "AAAA-MM-DD"
Fecha_Salida date "1931-12-20" fecha_salida date "AAAA-MM-DD"
Valor int FK "bla bla" valor int "Costo total de la reserva"
Forma_Pago varchar "cheque" forma_pago varchar "debito, credito, efectivo, cheque"
id_huesped int FK "Huesped a quien pertenece la reserva"
} }
``` ```
### 🗔 Plugin WindowBuilder
- Explorar *Window Builder*, agregar nuevas ventanas, o cambiar el diseño <details>
de las existentes, haz clic en el archivo **java**, luego en *Open With* ->
*Window Builder Editor* <summary markdown="span">Database creation statement</summary>
[SQL script](./database/creation_stmnt.sql)
```sql
CREATE DATABASE IF NOT EXISTS `hotel_alura` DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
USE `hotel_alura`;
CREATE TABLE IF NOT EXISTS `huesped` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nombre` varchar(20) NOT NULL,
`apellido` varchar(20) NOT NULL,
`fecha_nacimiento` date DEFAULT NULL,
`nacionalidad` varchar(20) DEFAULT NULL,
`telefono` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4
COLLATE=utf8mb4_general_ci;
CREATE TABLE IF NOT EXISTS `reserva` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`fecha_entrada` date NOT NULL,
`fecha_salida` date NOT NULL,
`valor` double NOT NULL,
`forma_pago` varchar(20) NOT NULL,
`id_huesped` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `id_huesped_idx` (`id_huesped`),
CONSTRAINT `id_huesped` FOREIGN KEY (`id_huesped`) REFERENCES `huesped` (`id`)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4
COLLATE=utf8mb4_general_ci;
```
</details>
### :mailbox_with_mail: Entrega ### :mailbox_with_mail: Entrega
1. Utilizar topico **challengeonehotelaluralatam4** en *About* -> *topics* -> 1. Utilizar topico **challengeonehotelaluralatam5** en *About* -> *topics* ->
etiqueta **challengeonehotelaluralatam4** etiqueta **challengeonehotelaluralatam4** ¿5?
2. Rellenar formulario de entrega con el enlace al repositorio 2. Completar el formulario de entrega con el enlace al repositorio ->
[Link formulario](https://lp.alura.com.br/alura-latam-entrega-challenge-one-esp-back-end) [Link formulario](https://lp.alura.com.br/alura-latam-entrega-challenge-one-esp-back-end)
3. ¡Añadir enlace y/o video del proyecto en Linkedin! Etiqueta a `#Oracle` y 3. ¡Añadir enlace y/o video del proyecto en Linkedin! Etiqueta a `#Oracle` y
`#AluraLatam` :checkered_flag: `#AluraLatam` :checkered_flag:
@ -127,6 +145,6 @@ etiqueta **challengeonehotelaluralatam4**
🧡 <strong>Oracle</strong></br> 🧡 <strong>Oracle</strong></br>
[<img src="https://img.shields.io/badge/-LinkedIn-%230077B5?style=for-the-badge&logo=linkedin&logoColor=white" target="_blank">](https://www.linkedin.com/company/oracle/) [<img src="https://img.shields.io/badge/-LinkedIn-%230077B5?style=for-the-badge&logo=linkedin&logoColor=white" target="_blank">](https://www.linkedin.com/company/oracle/)
💙 <strong>Alura Latam</strong></br> :blue_heart: <strong>Alura Latam</strong></br>
[<img src="https://img.shields.io/badge/-LinkedIn-%230077B5?style=for-the-badge&logo=linkedin&logoColor=white" target="_blank">](https://www.linkedin.com/company/alura-latam/mycompany/) [<img src="https://img.shields.io/badge/-LinkedIn-%230077B5?style=for-the-badge&logo=linkedin&logoColor=white" target="_blank">](https://www.linkedin.com/company/alura-latam/mycompany/)

View File

@ -0,0 +1,25 @@
CREATE DATABASE IF NOT EXISTS `hotel_alura` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE `hotel_alura`;
CREATE TABLE IF NOT EXISTS `huesped` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nombre` varchar(20) NOT NULL,
`apellido` varchar(20) NOT NULL,
`fecha_nacimiento` date DEFAULT NULL,
`nacionalidad` varchar(20) DEFAULT NULL,
`telefono` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE IF NOT EXISTS `reserva` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`fecha_entrada` date NOT NULL,
`fecha_salida` date NOT NULL,
`valor` double NOT NULL,
`forma_pago` varchar(20) NOT NULL,
`id_huesped` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `id_huesped_idx` (`id_huesped`),
CONSTRAINT `id_huesped` FOREIGN KEY (`id_huesped`) REFERENCES `huesped` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

BIN
database/er_diagram.mwb Normal file

Binary file not shown.

View File

@ -22,7 +22,7 @@ public class Exito extends JDialog {
private final JPanel contentPanel = new JPanel(); private final JPanel contentPanel = new JPanel();
/** /**
* Launch the application. * Launch application.
*/ */
public static void main(String[] args) { public static void main(String[] args) {
try { try {
@ -35,7 +35,7 @@ public class Exito extends JDialog {
} }
/** /**
* Create the dialog. * Create dialog.
*/ */
public Exito() { public Exito() {
setIconImage(Toolkit.getDefaultToolkit().getImage(Exito.class.getResource("/imagenes/aH-40px.png"))); setIconImage(Toolkit.getDefaultToolkit().getImage(Exito.class.getResource("/imagenes/aH-40px.png")));