-- drop database `Kenzo`; CREATE DATABASE Kenzo; USE `Kenzo`; -- Tabla Tipo Documento CREATE TABLE tbl_tipo_documento ( Id_tipo_documento int not null primary key auto_increment COMMENT 'ID Tipo de Documento', tipo_documento varchar(15) not null COMMENT 'Tipo de Documento (NIT, CC, TI, PP, CE)', descripcion varchar(50) not null COMMENT 'Descripción del tipo de documento' ); CREATE TABLE tbl_cliente ( Id_Cliente int not null primary key auto_increment COMMENT 'ID Cliente', Id_tipo_documento int not null COMMENT 'Tipo de Documento relacionado al cliente', numero_documento varchar(15) not null COMMENT 'Numero de Documento del cliente', nombres varchar(100) not null COMMENT 'Nombres del cliente', email varchar(255) COMMENT 'Correo electronico del cliente', celular varchar(20) COMMENT 'Número de celular', direccion varchar(150) COMMENT 'Dirección del cliente', constraint fk_cliente_tipoDoc foreign key (Id_tipo_documento) references tbl_tipo_documento(Id_tipo_documento) ); CREATE TABLE tbl_tipo_producto ( Id_tipo_producto int not null primary key auto_increment COMMENT 'ID Tipo de Producto', nombre varchar(50) not null COMMENT 'Nombre Tipo de Producto' ); CREATE TABLE tbl_proveedor ( Id_proveedor int primary key auto_increment COMMENT 'ID Proveedor', Id_tipo_documento int not null COMMENT 'Tipo de Documento relacionado al proveedor', numero_documento varchar(20) not null COMMENT 'Número de Documento', Nombre varchar(100) not null COMMENT 'Nombre del Proveedor', telefono varchar(20) COMMENT 'Telefono del Proveedor', correo varchar(255) COMMENT 'Email del Proveedor', direccion varchar(100) COMMENT 'Dirección del Proveedor', constraint fk_proveedor_tipoDoc foreign key (Id_tipo_documento) references tbl_tipo_documento(Id_tipo_documento) ); CREATE TABLE tbl_producto ( Id_Producto int not null primary key auto_increment COMMENT 'ID Producto', nombre varchar(50) not null COMMENT 'Nombre del Producto', valor_unitario float not null COMMENT 'Valor unitario del Producto', Id_tipo_producto int not null COMMENT 'Tipo de Producto relacionado', Id_proveedor int not null COMMENT 'ID relación de proveedor', constraint fk_Producto_tipo foreign key (Id_tipo_producto) references tbl_tipo_producto(Id_tipo_producto), constraint fk_Producto_proveedor foreign key (Id_proveedor) references tbl_proveedor(Id_proveedor) ); CREATE TABLE tbl_departamento ( Id_departamento int not null primary key auto_increment COMMENT 'ID Departamento', cod_departamento int not null COMMENT 'Código Departamento Divipola', nombre_departamento varchar(50) not null COMMENT 'Nombre Departamento' ); CREATE TABLE tbl_ciudad ( Id_ciudad int not null primary key auto_increment COMMENT 'ID Ciudad', cod_ciudad int not null COMMENT 'Código Ciudad Divipola', nombre_ciudad varchar(50) not null COMMENT 'Nombre Ciudad', Id_departamento int not null COMMENT 'ID Departamento Relacionado', constraint fk_ciudad_departamento foreign key (Id_departamento) references tbl_departamento(Id_departamento) ); CREATE TABLE tbl_sucursal ( Id_Sucursal int not null primary key auto_increment COMMENT 'ID Sucursal', nombre varchar(100) not null COMMENT 'Nombre Sucursal', direccion varchar(100) COMMENT 'Dirección Sucursal', capacidad varchar(20) COMMENT 'Capacidad Sucursal', Id_ciudad int not null COMMENT 'Ciudad relacionada a la Sucursal', constraint fk_sucursal_ciudad foreign key (Id_ciudad) references tbl_ciudad(Id_ciudad) ); CREATE TABLE tbl_inventario ( Id_Inventario int not null primary key auto_increment COMMENT 'ID Inventario', cantidad int not null COMMENT 'Cantidad de Productos disponibles', Id_Producto int not null COMMENT 'ID del Producto relacionado', Id_Sucursal int not null COMMENT 'ID Sucursal', constraint fk_Inventario_producto foreign key (Id_Producto) references tbl_producto(Id_Producto), constraint fk_Inventario_sucursal foreign key (Id_Sucursal) references tbl_sucursal(Id_Sucursal) ); CREATE TABLE tbl_metodo_pago ( Id_metodo_pago int not null primary key auto_increment COMMENT 'ID Método de Pago', descripcion varchar(20) not null COMMENT 'Descripción Método de Pago' ); CREATE TABLE tbl_empleado ( Id_empleado int not null primary key auto_increment COMMENT 'ID Empleado', Id_tipo_documento int not null COMMENT 'Tipo de Documento relacionado al empleado', numero_documento varchar(20) not null COMMENT 'Número de Documento', Nombre varchar(100) COMMENT 'Nombre del empleado', cargo varchar(50) COMMENT 'Cargo del empleado', turno varchar(20) COMMENT 'Turno del empleado', Id_Sucursal int not null COMMENT 'ID Sucursal', constraint fk_empleado_tipoDoc foreign key (Id_tipo_documento) references tbl_tipo_documento(Id_tipo_documento), constraint fk_empleado_sucursal foreign key (Id_Sucursal) references tbl_sucursal(Id_Sucursal) ); CREATE TABLE tbl_ventas ( Id_venta int not null primary key auto_increment COMMENT 'ID Venta', fecha date not null COMMENT 'Fecha Venta', Id_Cliente int not null COMMENT 'Id Cliente relacionado', Id_metodo_pago int not null COMMENT 'Id Metodo de Pago', Id_empleado int not null COMMENT 'ID Empleado', constraint fk_ventas_cliente foreign key (Id_cliente) references tbl_cliente(Id_Cliente), constraint fk_ventas_pago foreign key (Id_metodo_pago) references tbl_metodo_pago(Id_metodo_pago), constraint fk_ventas_empleado foreign key (Id_empleado) references tbl_empleado(Id_empleado) ); CREATE TABLE tbl_detalle_ventas ( Id_detalle int not null primary key auto_increment COMMENT 'ID Detalle Venta', Id_venta int not null COMMENT 'ID Venta Relacionada', Id_Producto int not null COMMENT 'ID Producto Relacionado', cantidad int COMMENT 'Cantidad de Productos', valor_unitario float not null COMMENT 'Valor Unitario', constraint fk_detalle_ventas foreign key (Id_venta) references tbl_ventas(Id_venta), constraint fk_detalle_venta_producto foreign key (Id_Producto) references tbl_producto(Id_Producto) ); CREATE TABLE tbl_devolucion ( Id_devolucion int not null primary key auto_increment COMMENT 'ID Devolucion', fecha date not null COMMENT 'Fecha de Devolucion', motivo text COMMENT 'Motivo Devolucion', Id_detalle int not null COMMENT 'ID Detalle Venta', constraint fk_devolucion_detalle_venta foreign key (Id_detalle) references tbl_detalle_ventas(Id_detalle) );