Está en la página 1de 5

Modelado de la Base de Datos

La base de datos es nuestra libreta, en ella ira escrito todo.


La base de datos se llamara inventario
1

create database inventario;

use inventario;

Usuarios
Lo principal son los usuarios, tengo contemplado 2 niveles de acceso, 1 para
usuarios normales con capacidades basicas y otra para usuarios administradores
con capacidades avanzadas.
El codigo SQL de la tabla de usuarios es el siguiente:
create table user( id int not null auto_increment primary key,
name varchar(50) not null,
lastname varchar(50) not null,
username varchar(50), password
varchar(60) not
null,
is_active boolean not null default 1,
is_admin boolean not
null default 0, created_at datetime not null );
Descripcion de los campos:

name: El nombre real del usuario


lastname: El apellido del usuaio
username: El nombre del usuario que usara para acceder al
sistema
password: La contrase~a encriptada
is_active: Un dato booleano que indica si el usuario esta activo o
no
is_admin: Un dato booleano que indica si el usuario es
administrador o no
created_at: Fecha de creacion, un dato tipo fecha y hora para
almacenar la fecha en que se agrega el usuario.

Valores iniciales:
insert
into
user(name,lastname,username,password,is_active,is_admin,creat

ed_at)
value
("Administrador", "","admin","90b9aa7e25f80cf4f64e990b78a9fc5
ebd6cecad",1,1,NOW());

Productos
Los productos son las entidades sobre las que operaremos, de ellos
almacenaremos el nombre, precio de entrada, de salida, unidad y presentacion, el
codigo SQL es el siguiente:
<span style="line-height: 1.5;">create table product( id int
not null auto_increment primary key, name varchar(50) not
null,
price_in float
not
null,
price_out float,
unit varchar(255) not null,
presentation varchar(255) not
null );</span>
<span style="line-height: 1.5;">
Descripcion de los campos:

id: llave primaria, identificador del producto


name: Nombre del producto
price_in: Dato flotante, precio de entrada o compra
price_out: Dato flotante, precio de salida o venta
unit: Unidad del producto (kilo, litro, pieza, etc)
presentation: La presentacion del producto, es decir como se vende
(bolsa,botella,caja, etc)

Tipos de operacion

Los tipos de operacion son 2: entrada y salida, pero usaremos una tabla auxiliar
para almacenar estos valores, esto ayudara si en un futuro pensamos agregar los
tipos de operacion : faltante o devolucion.
Codigo SQL
create
table
operation_type(
id int
not
auto_increment primary key, name varchar(50) not null );
Descripcion de los campos:

id: llave primaria, identificador del tipo de operacion


name: Nombre o valor del tipo de operacion

null

Valores iniciales
insert into operation_type (name) value ("entrada");
into operation_type (name) value ("salida");

insert

Venta
Normalmente una venta esta compuesta por varias operaciones, asi que
necesitaremos aunque sea un identificador de venta para relacionarlo con las
operaciones y la fecha.
create table sell( id int not null auto_increment primary key,
created_at datetime not null );
Descripcion de los campos

id: llave primaria, identificador de la venta


created_at: dato tipo fecha y hora, fecha de creacion

Operaciones
Las operaciones son las entidades que relacionan la actividad de la tienda, estan
compuesta por tipo de operacion, producto afectado, cantidad de producto, id de
venta (solo para operaciones de salida) y fecha de la operacion.
Codigo SQL:
create table operation( id int not null auto_increment primary
key,
product_id int
not
null,
q float
not
null,
operation_type_id int not null,
sell_id int,
created_at
datetime not
null, foreign
key
(product_id) references
product(id), foreign
key
(operation_type_id) references
operation_type(id), foreign
key
(sell_id) references
sell(id) );
Descripcion de los campos

id: llave primaria, identificador de la operacion


product_id: llave foranea, identificador del producto
q: cantidad del producto implicado
operation_type_id: llave foranea, identificador del tipo de
operacion

sell_id: llave foranea, identificador de la venta


created_at: Dato tipo fecha y hora, fecha de creacion o
realizacion de la operacion

Conclusion
He tratado de detallar lo mas posible el modelado de la base de datos, espero todo
valla bien hasta aqui, si tienen dudas por favor envien sus comentarios.
Para finalizar solo basta juntar todo el codigo de las tablas en un archivo que se
llamara schema.sql listo para ejecutar desde MySQL Workbench, PHPMyAdmin o
desde la Terminal

Conocimientos, Herramientas y Tecnicas Necesarias


Para lograr el exito en el desarrollo del sistema de inventario necesitaremos un
conjunto de conocimientos, herramientas y tecnica.

Conocimientos

HTML
PHP
MySQL
Bootstrap
LegoBox
Se requiere aunque sea lo mas minimo, tratare de explicar lo mas minimo, sin
embargo no tener nocion de estos conocimientos no impidira el avance en el
curso, ya que yo proporcionare todos los recursos necesarios.

Herramientas
Las herramientas que utilizaremos son software o librerias con las que deben
contar.

PHP, MySQL (XAMPP. LAMPP, WAMPP, etc)


Sublime Text 3 ( o cualquier editor de texto)
Bootstrap 3
jQuery
Navegador Google Chome (o cualquier navegador web)

Tecnicas
Las tecnicas nos ayudan a desarrollar mas rapido, normalmente se basan en la
experiencia y aunque no se usaran en su totalidad ayudaran mucho para la
comprencion.

POO (Programacion Orientada a Objeto)


ORM (Object Relational Mapper)
Patrones de Dise~o (Singleton, Front-Controller)

http://evilnapsis.com/courses/crear-un-sistema-de-inventario-y-ventas-con-php-y-mysql/

También podría gustarte