Files
banco-con-java-ee/bank.sql
Daniel Cortés bd70170c32 TO MUCH THINGS
Pero ya esta casi casi, estoy haciendo la eliminacion de cosas de las
tarjetas de credito, luego empiezo a utilizar la linea de sobregiro y
esta done done <3
2019-07-22 05:04:58 -04:00

173 lines
6.8 KiB
SQL

DROP DATABASE bank;
CREATE DATABASE bank;
USE bank;
CREATE TABLE linea_sobregiro (
id int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
sobregiro int(10) NOT NULL,
limite int(10) NOT NULL,
inserted_at timestamp DEFAULT current_timestamp()
);
CREATE TABLE tarjeta_credito (
id int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
limite_nacional int(10) NOT NULL,
limite_internacional int(10) NOT NULL,
deuda_nacional int(10) DEFAULT 0,
deuda_internacional int(10) DEFAULT 0,
linea_sobregiro int(10) UNIQUE,
inserted_at timestamp DEFAULT current_timestamp(),
foreign key (linea_sobregiro) references linea_sobregiro (id) ON DELETE CASCADE
);
CREATE TABLE cuenta_corriente (
id int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
saldo int(10) DEFAULT 0,
linea_sobregiro int(10) UNIQUE,
inserted_at timestamp DEFAULT current_timestamp(),
foreign key (linea_sobregiro) references linea_sobregiro (id) ON DELETE CASCADE
);
CREATE TABLE tarjeta_debito (
id int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
saldo int(10) DEFAULT 0,
inserted_at timestamp DEFAULT current_timestamp()
);
CREATE TABLE usuario (
id int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
nombre varchar(255) NOT NULL,
password binary(32) NOT NULL,
salt binary(16) NOT NULL,
rol varchar(255) DEFAULT 'Cliente',
inserted_at timestamp DEFAULT current_timestamp()
);
CREATE TABLE cliente (
id int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
rut varchar(255) NOT NULL,
nombre varchar(255) NOT NULL,
ciudad varchar(255) NOT NULL,
cuenta_corriente int(10) UNIQUE,
tarjeta_credito int(10) UNIQUE,
tarjeta_debito int(10) UNIQUE,
usuario int(10) NOT NULL UNIQUE,
inserted_at timestamp DEFAULT current_timestamp(),
foreign key (cuenta_corriente) references cuenta_corriente (id) ON DELETE CASCADE,
foreign key (tarjeta_credito) references tarjeta_credito (id) ON DELETE CASCADE,
foreign key (tarjeta_debito) references tarjeta_debito (id) ON DELETE CASCADE,
foreign key (usuario) references usuario (id) ON DELETE CASCADE
);
CREATE TABLE metodo (
id int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
nombre varchar(255) NOT NULL,
inserted_at timestamp DEFAULT current_timestamp()
);
CREATE TABLE compra_tarjeta_credito (
id int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
monto int(10) NOT NULL,
comentario varchar(255),
tipo varchar(255),
tarjeta_credito int(10),
inserted_at timestamp DEFAULT current_timestamp(),
foreign key (tarjeta_credito) references tarjeta_credito (id) ON DELETE SET NULL
);
CREATE TABLE pago_tarjeta_credito (
id int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
monto int(10) NOT NULL,
comentario varchar(255),
tipo varchar(255),
tarjeta_credito int(10),
inserted_at timestamp DEFAULT current_timestamp(),
foreign key (tarjeta_credito) references tarjeta_credito (id) ON DELETE SET NULL
);
CREATE TABLE giro_cuenta_corriente (
id int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
monto int(10) NOT NULL,
comentario varchar(255),
cuenta_corriente int(10),
metodo int(10) NOT NULL,
inserted_at timestamp DEFAULT current_timestamp(),
foreign key (metodo) references metodo (id),
foreign key (cuenta_corriente) references cuenta_corriente (id) ON DELETE SET NULL
);
CREATE TABLE deposito_cuenta_corriente (
id int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
monto int(10) NOT NULL,
comentario varchar(255),
metodo int(10) NOT NULL,
cuenta_corriente int(10),
inserted_at timestamp DEFAULT current_timestamp(),
foreign key (metodo) references metodo (id),
foreign key (cuenta_corriente) references cuenta_corriente (id) ON DELETE SET NULL
);
CREATE TABLE transferencia_cuenta_corriente (
id int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
monto int(10) NOT NULL,
comentario varchar(255),
cuenta_corriente_to int(10),
cuenta_corriente_from int(10),
inserted_at timestamp DEFAULT current_timestamp(),
foreign key (cuenta_corriente_to) references cuenta_corriente (id) ON DELETE SET NULL,
foreign key (cuenta_corriente_from) references cuenta_corriente (id) ON DELETE SET NULL
);
CREATE TABLE deposito_tarjeta_debito (
id int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
monto int(10) NOT NULL,
comentario varchar(255),
metodo int(10) NOT NULL,
tarjeta_debito int(10),
inserted_at timestamp DEFAULT current_timestamp(),
foreign key (metodo) references metodo (id),
foreign key (tarjeta_debito) references tarjeta_debito (id) ON DELETE SET NULL
);
CREATE TABLE giro_tarjeta_debito (
id int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
monto int(10) NOT NULL,
comentario varchar(255),
metodo int(10) NOT NULL,
tarjeta_debito int(10),
inserted_at timestamp DEFAULT current_timestamp(),
foreign key (metodo) references metodo (id),
foreign key (tarjeta_debito) references tarjeta_debito (id) ON DELETE SET NULL
);
CREATE TABLE transferencia_tarjeta_debito (
id int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
monto int(10) NOT NULL,
comentario varchar(255),
tarjeta_debito_to int(10),
tarjeta_debito_from int(10),
inserted_at timestamp DEFAULT current_timestamp(),
foreign key (tarjeta_debito_to) references tarjeta_debito (id) ON DELETE SET NULL,
foreign key (tarjeta_debito_from) references tarjeta_debito (id) ON DELETE SET NULL
);
CREATE TABLE compra_tarjeta_debito (
id int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
monto int(10) NOT NULL,
comentario varchar(255),
tarjeta_debito int(10),
inserted_at timestamp DEFAULT current_timestamp(),
foreign key (tarjeta_debito) references tarjeta_debito (id) ON DELETE SET NULL
);
INSERT INTO usuario(id, nombre, password, salt, rol, inserted_at) VALUES
(1, 'ryuuji', 0xEC65288218545FB29831D2025CEE99704C900B4B8E0B7DB35A610E2D1673BF35, 0x6260AD9369D01E48EC34F0315FAD3565, 'Admin', current_timestamp());
INSERT INTO metodo (id, nombre) VALUES
(1, 'Cheque'),
(2, 'Vale Vista'),
(3, 'Efectivo'),
(4, 'Caja');