Todo por ellos <3 La gracia es que al ver un trabajador te da la opcion de usuario, dentro de ella si es que no tiene un usuario creado puede crear uno, y una vez creado, pasa a ver su nombre de usuario y desde esa vista, puede ir a editar su usuario cambiando su nombre y contraseña a gusto, me gustaria poder poner un placeholder en el campo de la contraseña pero no me deja :c
450 lines
15 KiB
SQL
450 lines
15 KiB
SQL
#--------------------------------------------------------------------------------#
|
|
#-----------------------------Eliminar todas las tablas--------------------------#
|
|
#--------------------------------------------------------------------------------#
|
|
set foreign_key_checks = 0;
|
|
|
|
drop table if exists editorial;
|
|
drop table if exists estado;
|
|
drop table if exists autor;
|
|
drop table if exists categoria;
|
|
drop table if exists idioma;
|
|
drop table if exists libro;
|
|
drop table if exists ejemplar;
|
|
drop table if exists libro_autor;
|
|
drop table if exists libro_categoria;
|
|
drop table if exists libro_idioma;
|
|
drop table if exists correo;
|
|
drop table if exists direccion;
|
|
drop table if exists telefono;
|
|
drop table if exists empresa;
|
|
drop table if exists distribuidor;
|
|
drop table if exists cliente;
|
|
drop table if exists trabajador;
|
|
drop table if exists distribuidor_direccion;
|
|
drop table if exists distribuidor_telefono;
|
|
drop table if exists distribuidor_correo;
|
|
drop table if exists cliente_direccion;
|
|
drop table if exists cliente_telefono;
|
|
drop table if exists cliente_correo;
|
|
drop table if exists trabajador_direccion;
|
|
drop table if exists trabajador_telefono;
|
|
drop table if exists trabajador_correo;
|
|
drop table if exists factura;
|
|
drop table if exists boleta;
|
|
drop table if exists compra;
|
|
drop table if exists venta;
|
|
drop table if exists arriendo;
|
|
drop table if exists libro_compra;
|
|
drop table if exists libro_venta;
|
|
drop table if exists libro_arriendo;
|
|
drop table if exists usuario;
|
|
|
|
set foreign_key_checks = 1;
|
|
|
|
#--------------------------------------------------------------------------------#
|
|
#--------------Definicion de las tablas relacionadas a los libros----------------#
|
|
#--------------------------------------------------------------------------------#
|
|
create table editorial
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
nombre varchar(255) not null,
|
|
inserted_at timestamp default CURRENT_TIMESTAMP
|
|
);
|
|
|
|
create table estado
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
nombre varchar(255) not null,
|
|
inserted_at timestamp default CURRENT_TIMESTAMP
|
|
);
|
|
|
|
create table autor
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
nombre varchar(255) not null,
|
|
apellido_paterno varchar(255) null,
|
|
apellido_materno varchar(255) null,
|
|
inserted_at timestamp default CURRENT_TIMESTAMP
|
|
);
|
|
|
|
create table categoria
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
nombre varchar(255) not null,
|
|
inserted_at timestamp default CURRENT_TIMESTAMP
|
|
);
|
|
|
|
create table idioma
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
nombre varchar(255) not null,
|
|
inserted_at timestamp default CURRENT_TIMESTAMP
|
|
);
|
|
|
|
create table libro
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
editorial_id int unsigned not null,
|
|
isbn varchar(255) not null,
|
|
ano_publicacion int default null,
|
|
numero_paginas int not null,
|
|
titulo varchar(255) default null,
|
|
precio_referencia int not null,
|
|
inserted_at timestamp default CURRENT_TIMESTAMP,
|
|
foreign key (editorial_id) references editorial (id) on delete restrict on update cascade
|
|
);
|
|
|
|
create table ejemplar
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
libro_id int unsigned not null,
|
|
estado_id int unsigned default 1,
|
|
serie varchar(255) not null,
|
|
inserted_at timestamp default CURRENT_TIMESTAMP,
|
|
unique key serie_libro (serie, libro_id),
|
|
foreign key (libro_id) references libro (id) on delete cascade on update cascade,
|
|
foreign key (estado_id) references estado (id) on delete restrict on update cascade
|
|
);
|
|
|
|
create table libro_autor
|
|
(
|
|
libro_id int unsigned not null,
|
|
autor_id int unsigned not null,
|
|
foreign key (libro_id) references libro (id) on delete restrict on update cascade,
|
|
foreign key (autor_id) references autor (id) on delete restrict on update cascade
|
|
);
|
|
|
|
create table libro_categoria
|
|
(
|
|
libro_id int unsigned not null,
|
|
categoria_id int unsigned not null,
|
|
foreign key (libro_id) references libro (id) on delete restrict on update cascade,
|
|
foreign key (categoria_id) references categoria (id) on delete restrict on update cascade
|
|
);
|
|
|
|
create table libro_idioma
|
|
(
|
|
libro_id int unsigned not null,
|
|
idioma_id int unsigned not null,
|
|
foreign key (libro_id) references libro (id) on delete restrict on update cascade,
|
|
foreign key (idioma_id) references idioma (id) on delete restrict on update cascade
|
|
);
|
|
|
|
|
|
#--------------------------------------------------------------------------------#
|
|
#------------Definicion de las tablas relacionadas a las personas----------------#
|
|
#--------------------------------------------------------------------------------#
|
|
create table direccion
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
calle varchar(255) not null,
|
|
numero varchar(255) not null,
|
|
inserted_at timestamp default CURRENT_TIMESTAMP
|
|
);
|
|
|
|
create table telefono
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
numero varchar(255) not null,
|
|
inserted_at timestamp default CURRENT_TIMESTAMP
|
|
);
|
|
|
|
create table correo
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
correo varchar(255) not null,
|
|
inserted_at timestamp default CURRENT_TIMESTAMP
|
|
);
|
|
|
|
create table empresa
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
nombre varchar(255) not null,
|
|
inserted_at timestamp default CURRENT_TIMESTAMP
|
|
);
|
|
|
|
create table distribuidor
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
empresa_id int unsigned not null,
|
|
rut varchar(255) not null,
|
|
inserted_at timestamp default CURRENT_TIMESTAMP,
|
|
foreign key (empresa_id) references empresa (id) on delete restrict on update cascade
|
|
);
|
|
|
|
create table cliente
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
rut varchar(255) not null,
|
|
nombre varchar(255) not null,
|
|
apellido_paterno varchar(255) not null,
|
|
apellido_materno varchar(255) not null,
|
|
fecha_nacimiento date not null,
|
|
inserted_at timestamp default CURRENT_TIMESTAMP
|
|
);
|
|
|
|
create table trabajador
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
rut varchar(255) not null,
|
|
nombre varchar(255) not null,
|
|
apellido_paterno varchar(255) not null,
|
|
apellido_materno varchar(255) not null,
|
|
fecha_contrato date not null,
|
|
inserted_at timestamp default CURRENT_TIMESTAMP
|
|
);
|
|
|
|
create table distribuidor_direccion
|
|
(
|
|
distribuidor_id int unsigned,
|
|
direccion_id int unsigned,
|
|
foreign key (distribuidor_id) references distribuidor (id) on delete restrict on update cascade,
|
|
foreign key (direccion_id) references direccion (id) on delete restrict on update cascade
|
|
);
|
|
|
|
create table distribuidor_telefono
|
|
(
|
|
distribuidor_id int unsigned,
|
|
telefono_id int unsigned,
|
|
foreign key (distribuidor_id) references distribuidor (id) on delete restrict on update cascade,
|
|
foreign key (telefono_id) references telefono (id) on delete restrict on update cascade
|
|
);
|
|
|
|
create table distribuidor_correo
|
|
(
|
|
distribuidor_id int unsigned,
|
|
correo_id int unsigned,
|
|
foreign key (distribuidor_id) references distribuidor (id) on delete restrict on update cascade,
|
|
foreign key (correo_id) references correo (id) on delete restrict on update cascade
|
|
);
|
|
|
|
create table cliente_direccion
|
|
(
|
|
cliente_id int unsigned,
|
|
direccion_id int unsigned,
|
|
foreign key (cliente_id) references cliente (id) on delete restrict on update cascade,
|
|
foreign key (direccion_id) references direccion (id) on delete restrict on update cascade
|
|
);
|
|
|
|
create table cliente_telefono
|
|
(
|
|
cliente_id int unsigned,
|
|
telefono_id int unsigned,
|
|
foreign key (cliente_id) references cliente (id) on delete restrict on update cascade,
|
|
foreign key (telefono_id) references telefono (id) on delete restrict on update cascade
|
|
);
|
|
|
|
create table cliente_correo
|
|
(
|
|
cliente_id int unsigned,
|
|
correo_id int unsigned,
|
|
foreign key (cliente_id) references cliente (id) on delete restrict on update cascade,
|
|
foreign key (correo_id) references correo (id) on delete restrict on update cascade
|
|
);
|
|
|
|
create table trabajador_direccion
|
|
(
|
|
trabajador_id int unsigned,
|
|
direccion_id int unsigned,
|
|
foreign key (trabajador_id) references trabajador (id) on delete restrict on update cascade,
|
|
foreign key (direccion_id) references direccion (id) on delete restrict on update cascade
|
|
);
|
|
|
|
create table trabajador_telefono
|
|
(
|
|
trabajador_id int unsigned,
|
|
telefono_id int unsigned,
|
|
foreign key (trabajador_id) references trabajador (id) on delete restrict on update cascade,
|
|
foreign key (telefono_id) references telefono (id) on delete restrict on update cascade
|
|
);
|
|
|
|
create table trabajador_correo
|
|
(
|
|
trabajador_id int unsigned,
|
|
correo_id int unsigned,
|
|
foreign key (trabajador_id) references trabajador (id) on delete restrict on update cascade,
|
|
foreign key (correo_id) references correo (id) on delete restrict on update cascade
|
|
);
|
|
|
|
#--------------------------------------------------------------------------------#
|
|
#-------Definicion de las tablas relacionadas a la venta/compra/arriendo---------#
|
|
#--------------------------------------------------------------------------------#
|
|
|
|
create table factura
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
folio varchar(255) not null,
|
|
precio_neto int not null,
|
|
precio_iva int not null,
|
|
fecha_compra datetime not null,
|
|
inserted_at timestamp default CURRENT_TIMESTAMP
|
|
);
|
|
|
|
create table boleta
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
folio varchar(255) not null,
|
|
precio_neto int not null,
|
|
precio_iva int not null,
|
|
fecha_venta datetime not null,
|
|
inserted_at timestamp default CURRENT_TIMESTAMP
|
|
);
|
|
|
|
create table compra
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
factura_id int unsigned not null,
|
|
distribuidor_id int unsigned not null,
|
|
inserted_at timestamp default CURRENT_TIMESTAMP,
|
|
foreign key (factura_id) references factura (id) on delete restrict on update cascade,
|
|
foreign key (distribuidor_id) references distribuidor (id) on delete restrict on update cascade
|
|
);
|
|
|
|
create table venta
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
cliente_id int unsigned not null,
|
|
trabajador_id int unsigned not null,
|
|
boleta_id int unsigned not null,
|
|
inserted_at timestamp default CURRENT_TIMESTAMP,
|
|
foreign key (cliente_id) references cliente (id) on delete restrict on update cascade,
|
|
foreign key (trabajador_id) references trabajador (id) on delete restrict on update cascade,
|
|
foreign key (boleta_id) references boleta (id) on delete restrict on update cascade
|
|
);
|
|
|
|
create table arriendo
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
trabajador_id int unsigned not null,
|
|
cliente_id int unsigned not null,
|
|
costo_arriendo int not null,
|
|
fecha_arriendo date not null,
|
|
fecha_devolucion_estimada date not null,
|
|
fecha_devolucion_real date,
|
|
multa int,
|
|
costo_total int,
|
|
inserted_at timestamp default CURRENT_TIMESTAMP,
|
|
foreign key (trabajador_id) references trabajador (id) on delete restrict on update cascade,
|
|
foreign key (cliente_id) references cliente (id) on delete restrict on update cascade
|
|
);
|
|
|
|
create table libro_compra
|
|
(
|
|
libro_id int unsigned,
|
|
compra_id int unsigned,
|
|
foreign key (libro_id) references libro (id) on delete restrict on update cascade,
|
|
foreign key (compra_id) references compra (id) on delete restrict on update cascade
|
|
);
|
|
|
|
create table libro_venta
|
|
(
|
|
libro_id int unsigned,
|
|
venta_id int unsigned,
|
|
foreign key (libro_id) references libro (id) on delete restrict on update cascade,
|
|
foreign key (venta_id) references venta (id) on delete restrict on update cascade
|
|
);
|
|
|
|
create table libro_arriendo
|
|
(
|
|
libro_id int unsigned,
|
|
arriendo_id int unsigned,
|
|
foreign key (libro_id) references libro (id) on delete restrict on update cascade,
|
|
foreign key (arriendo_id) references arriendo (id) on delete restrict on update cascade
|
|
);
|
|
|
|
#--------------------------------------------------------------------------------#
|
|
#---------------------Definicion de las tablas de usuario------------------------#
|
|
#--------------------------------------------------------------------------------#
|
|
|
|
create table usuario
|
|
(
|
|
id int unsigned primary key auto_increment,
|
|
nombre varchar(255) not null,
|
|
password varchar(255) not null,
|
|
trabajador_id int unsigned not null,
|
|
foreign key (trabajador_id) references trabajador (id) on delete cascade on update cascade,
|
|
inserted_at timestamp default current_timestamp
|
|
);
|
|
|
|
#--------------------------------------------------------------------------------#
|
|
#------------------------Poblar con datos iniciales------------------------------#
|
|
#--------------------------------------------------------------------------------#
|
|
|
|
insert into estado (nombre)
|
|
values ('Vendido'),
|
|
('Arrendado'),
|
|
('Disponible');
|
|
|
|
insert into idioma (nombre)
|
|
values ('Español'),
|
|
('Ingles'),
|
|
('Portuges'),
|
|
('Aleman'),
|
|
('Ruso'),
|
|
('Japones');
|
|
|
|
insert into editorial (nombre)
|
|
values ('Editorial N1'),
|
|
('Editorial N2'),
|
|
('Editorial N3');
|
|
|
|
insert into categoria (nombre)
|
|
values ('Terror'),
|
|
('Aventura'),
|
|
('Fantasia');
|
|
|
|
insert into autor(nombre, apellido_paterno, apellido_materno)
|
|
values ('Howard Philips', 'Lovecraft', NULL),
|
|
('Stephen', 'King', NULL),
|
|
('Brandon', 'Sanderson', NULL);
|
|
|
|
insert into libro (editorial_id, isbn, ano_publicacion, numero_paginas, titulo, precio_referencia)
|
|
values (1, '0-765-31178-X', 2006, 541, 'Mistborn: The Final Empire', 10000),
|
|
(1, '0-765-31688-9', 2007, 590, 'Mistborn: The Well of Ascension', 10000),
|
|
(1, '978-0-7653-1689-9', 2008, 572, 'Mistborn: The Hero of Ages', 10000),
|
|
(2, '1231231231232', 1931, 100, 'The Shadow over Innsmouth', 10000),
|
|
(2, '1231231231232', 1933, 100, 'The Dreams in the Witch House', 10000),
|
|
(2, '1231231231232', 1936, 100, 'At the Mountains of Madness', 10000),
|
|
(3, '0385086954', 1974, 199, 'Carrie', 10000),
|
|
(3, '978-0-670-26077-5', 1979, 428, 'The Dead Zone', 10000),
|
|
(3, '0-670-81302-8', 1986, 1138, 'It', 10000);
|
|
|
|
insert into libro_autor(libro_id, autor_id)
|
|
values (1, 3),
|
|
(2, 3),
|
|
(3, 3),
|
|
(4, 1),
|
|
(5, 1),
|
|
(6, 1),
|
|
(7, 2),
|
|
(8, 2),
|
|
(9, 2);
|
|
|
|
insert into libro_categoria(libro_id, categoria_id)
|
|
values (1, 3),
|
|
(2, 3),
|
|
(3, 3),
|
|
(4, 1),
|
|
(5, 1),
|
|
(6, 1),
|
|
(7, 1),
|
|
(8, 1),
|
|
(9, 1);
|
|
|
|
insert into libro_idioma(libro_id, idioma_id)
|
|
values (1, 2),
|
|
(2, 2),
|
|
(3, 2),
|
|
(4, 2),
|
|
(5, 2),
|
|
(6, 2),
|
|
(7, 2),
|
|
(8, 2),
|
|
(9, 2);
|
|
|
|
INSERT INTO trabajador
|
|
VALUES (1, '197638990', 'Daniel', 'Cortes', 'Pincheira', '2019-06-04', '2019-06-04 18:12:55');
|
|
|
|
INSERT INTO usuario
|
|
VALUES (1, 'admin', 'IF7nbMo9zxGOH++0op8eE+obeILVzsZCguAqPVydL/0=', 1, '2019-06-05 00:08:50');
|