Vamos a crear un ejemplo básico que nos permite entender una base de datos. El resultado de esto sera que cuanto mas complicado sea nuestra base de datos mas tiempo tardaremos, pero omitiendo información conseguiremos tener que rehacerlo todo y perderemos más tiempo si cabe.

Seria crear un carrito de compra con clientes que realizan compras de unos artículos de terminados. Las compras han de convertirse en pedidos.

Si esta fuera la basa de datos seria tan fácil como crear tres tablas.

  • Clientes Id_cliente, Nombre, apellidos, teléfono
  • Articulo Id_articulo, descripción, peso, precio, color, tamaño
  • Pedido: Id_pedido, Id_articulo, Id_cliente

Esquema básico de base de datos

esquema-basico-de-base-de-datos-2

Pero esto nos surge un problema y es que cada vez que realizo un pedido duplico el contenido del mismo.
por ejemplo:

  • 1 Silla Mariano
  • 2 Silla Mariano
  • 3 Mesa Mariano

Ademas añadiremos una variante más como que clientes que realizan pedidos a la empresa se distribuyen en zonas: Norte, Sur, Este, Oeste que tienen asignadas un comercial por zona. De los clientes, a parte de la razón social, la dirección, el CP, la población, la provincia, el país, teléfonos de contacto y email se recoge el nombre de una persona de contacto, sólo a nivel orientativo.

La cosa se complica. pero tiene solución:
La regla de oro es que siempre que un dato se repite, como el del pedido, la solución es añadir un nexo más de unión osea una tabla que quedaría así.

  • DetallePedido Id_pedido, Id_articulo, cantidad
  • Cabecera pedido Id pedido ,fecha pedido, fecha prevista, notas
  • Clientes Id_cliente, Nombre, apellidos, teléfono
  • Articulo Id_articulo, descripción, peso, precio, color, tamaño
  • Comercial Id_comercial, Nombre, apellidos, teléfono, Zona

esquema-medio-de-base-de-datos

Esquema básico de base de datos

Como vemos la zona en la que se encuentra la empresa es una y el comercial asignado es uno por lo que la relación es claramente así. Nos surgirían una serie de problemas cuando el cliente nos dice:

  • Un cliente puede tener mas de una zona comercial
  • Un comercial puede tener mas de una zona comercial
  • Un cliente puede tener varios comerciales
  • Lo mejor seria  cuando cumpliera todas las anteriores.

Deja un comentario