database creation statement & er diagram
This commit is contained in:
parent
4f98db0ad1
commit
bdb78e6901
136
README.md
136
README.md
@ -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/)
|
||||||
|
|
||||||
|
25
database/creation_stmnt.sql
Normal file
25
database/creation_stmnt.sql
Normal 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
BIN
database/er_diagram.mwb
Normal file
Binary file not shown.
@ -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")));
|
||||||
|
Loading…
Reference in New Issue
Block a user