jueves, 22 de noviembre de 2012

Resolución ejercicio final (2)

En esta segunda parte trataremos la creación de las tablas de la base de datos.

En un primer momento crearemos las tablas asignando los tipos de datos correctos a cada tabla, pero sin preocuparnos por los índices ni las restricciones (no se piden para este ejercicio).

El primer paso es crear la base de datos:

create database cash;



En segundo lugar se creará la tabla ivas, que contendrá dos campos, un id y el valor del IVA, ambos datos de tipo entero.


create table ivas (codigo_iva int, tipo_iva int);




Otra tabla sencilla es la de almacenes, en la que se almacena un id entero y una descripción de tipo varchar.


create table almacenes (id_almacen int, nombre varchar(50));




Otra tabla importante es la de artículos:


create table articulos
(
id_articulo int,
nombre varchar(50),
codigo_barras char(17),
familia varchar(15),
neto float,
codigo_iva int,
descatalogado bool
);



NOTA:

Tal como comentamos en clase, cabe puntualizar que el menor espacio a ocupar por un dato en una base de datos es el equivalente a un byte (8 bits).

Este tipo de datos se implementa en MySql como tinyint.

Por lo tanto, aunque deseemos almacenar una variable que solo trate dos valores (true, false), como es el caso de una variable booleana, el Sistema Gestor de la Base de Datos (SGBD), lo implementará como un byte.

Este caso se puede ver en la siguiente captura, como en el punto 1, se crea el campo como bool mediante la instrucción SQL Create Table, mientras que en el punto 2 se puede ver como este campo ha sido implementado en la Base de Datos, mediante un Tinyint




Para poder gestionar los stocks de los distintos almacenes, es preciso crear una tabla que almacene el valor del stock como elemento de tipo float (es posible almacenar medio metro cúbico de arena) y un índice para el artículo y otro para el almacén.

create table ubicacion (id_articulo int, id_almacen int, stock float);









Las tablas de clientes y proveedores son similares, la única diferencia es el nombre del campo id.


create table clientes (id_cliente int, nombre varchar(50), nif varchar(15), direccion varchar(50), poblacion varchar(50), provincia varchar(50), email varchar(100));







Las facturas se dividen en dos tablas, por una parte la cabecera y por otra las líneas:

create table cab_fv
(
id_fv int, 
id_cliente int, 
fecha date
);




create table lin_fv
(
id_fv int, 
id_articulo int,
descripcion varchar(50),
cantidad float,
iva int,
neto float
);




Las tablas para los albaranes de compra son idénticas a las de las facturas de venta:

create table cab_ac
(
id_ac int, 
id_proveedor int, 
fecha date
);




create table lin_ac
(
id_ac int, 
id_articulo int,
descripcion varchar(50),
cantidad float,
iva int,
neto float
);



Quedando finalmente las siguientes tablas:



No hay comentarios:

Publicar un comentario