sábado, 1 de noviembre de 2014

VENTAS 1. Aplicación de Ventas - Crear la Base de Datos

VENTAS 1. Creación de la Base de Datos

Al desarrollar una aplicación, no podemos hacer muchos trabajos si no tenemos armada la base de datos, podríamos hacer el diseño de los formularios o mejor dicho los bosquejos de estos, el entorno principal de menú y algunos otros detalles de la aplicación pero no podríamos desarrollar la aplicación de datos en si y la programación pues nos faltarían datos para hacerlo, por ello te sugiero las siguientes recomendaciones.
  • Primero, tener el diseño de la base de datos.
  • Segundo, tener el código de la base de datos y la base de datos en forma física, es decir ya creada.
  • Tercero, también deberás ya estar creando los principales procedimientos almacenados y/o las instrucciones que permitirán hacer el mantenimiento de la base de datos.
Las programación también se pueden desarrollar a la par con la base de datos, pero te convendría tener un avance mayor en tu base de datos ya que un error o una modificación el la base de datos provocará que la programación sea reestructurada e incluso se rehaga nuevamente.

Conociendo esto ahora procederemos a armar estos tres elementos:

1. Diseño de la Base de Datos

Haremos una aplicación para el control de las ventas de productos en una tienda que tiene las siguientes reglas que ponemos en resumen.
  • Un cliente puede participar en varias ventas como un comprador, del cliente necesitamos su nombre, dirección, teléfono y de la venta necesitamos el numero de la venta, la fecha de venta y alguna observación que necesitemos anotar.
  • En toda venta se puede comprar varios productos, entre los detalles que se debe tener son la cantidad de productos que se compran, el precio al que se compra.
  • Del producto necesitamos su nombre, una descripción, su precio unitario y un lugar donde podamos anotar algunas observaciones.


2. Creación de la Base de Datos

Una vez que tenemos el diseño de la base de datos, ahora procedemos a la creación de la base de datos siguiendo siempre la estructura del diseño.

Código en SqlServer para la Base de Datos

use master;
go
drop database bdVentas;
go
create database bdVentas;
go
use bdVentas;
go
/*
* CREAR TABLAS
*/
create table tCliente
(
                idCliente int primary key identity,
                nombre varchar(170) not null,
                direccion varchar(170),
                telefono varchar(20),
                observacion text
);
go
create table tVenta
(
                idVenta int primary key identity,
                fecha datetime,
                observacion text,
                fkCliente int,
                foreign key(fkCliente) references tCliente(idCliente)
);
go
create table tProducto
(
                idProducto int primary key identity,
                nombre varchar(170) not null,
                descripcion text,
                precioUnitario money,
                observacion text
);
go
create table tDetalle
(
                fkVenta int,
                fkProducto int,
                cantidad int,
                precioUnitario money,
                foreign key(fkVenta) references tVenta(idVenta),
                foreign key(fkProducto) references tProducto(idProducto),
                primary key (fkVenta, fkProducto)
);
go

3. Instrucciones de Mantenimiento de la Base de Datos

Ahora que ya tenemos la base de datos, debemos proceder a crear los procedimientos almacenados, vistas e instrucciones para el mantenimiento y consulta de los datos de las tablas, en esta parte no usaremos procedimientos almacenados, por ahora usaremos las instrucciones básicas de SqlServer.

Código en SqlServer para la Base de Datos

/*
* INSERCIÓN DE DATOS
*/
/*Insertar personas*/
insert into tCliente(nombre,direccion,telefono,observacion) values('Juan Perez','Av. Sol 233','546565','N.A.');
/*Insertar productos*/
insert into tProducto(nombre,descripcion,precioUnitario,observacion) values('Televisor LED 50p LG','N.N.N',1586.45,'N.A.');
/*Insertar venta*/
insert into tVenta(fecha,observacion,fkCliente) values('12/12/12','NN.AA.',1);
/*Insertar detalle*/
insert into tDetalle(fkVenta,fkProducto,cantidad,precioUnitario) values(1,1,15,2.5);
go
/*
* MODIFICACION DE DATOS
*/
/*Modificar clientes*/
update tCliente set nombre='qqq',direccion='ppp',telefono='kkk',observacion='mmm' where idCliente = 1;
/*Modificar productos*/
update tProducto set nombre='www',descripcion='ggg',precioUnitario=6.55,observacion='ttt' where idProducto = 1;
/*Modificar ventas*/
update tVenta set fecha='10/10/10', observacion='hhh' where idVenta=1;
/*Modificar detalles*/
update tDetalle set fkVenta=1,fkProducto=1,cantidad=47,precioUnitario=4.5 where fkVenta=1 and fkProducto=1;
go
/*
* ELIMINAR DATOS
*/
/*Eliminar detalles*/
delete from tDetalle where fkVenta=1 and fkProducto=1;
/*Eliminar ventas*/
delete from tVenta where idVenta=1;
/*Eliminar productos*/
delete from tProducto where idProducto=1;
/*Eliminar clientes*/
delete from tCliente where idCliente=1;
go
/*
* CONSULTAS
*/
select * from tCliente;
select * from tProducto;
select * from tVenta;
select * from tDetalle;
/*Buscar Productos por Nombre*/
select * from tProducto where nombre like '%LED%';
/*Buscar Prodocutos por ID*/
select * from tProducto where idProducto=1;
/*Buscar clientes por Nombre*/
select * from tCliente where nombre like '%juan%';
/*Buscar Clientes por ID*/
select * from tCliente where idCliente=1;
/*Listar las ventas de un Cliente*/
select * from tCliente join tVenta on tCliente.idCliente = tVenta.idVenta where idCliente=1;
/*Listar la venta con sus detalles*/
select * from tVenta join tDetalle on tVenta.idVenta=tDetalle.fkVenta;

No hay comentarios:

Publicar un comentario