Proyecto de base de datos Avance #1 Cristóbal Márquez U. 24/08/2012 Introducción Una de las mayores necesidades de los seres humanos es la compra de productos agrícolas y de alimentación. Es un aspecto tan fundamental de la vida, que el vivir sin ellos no daría a la posibilidad de subsistir. Tal cual es una de las razones primordiales que los locales de abastecimientos existen, tales como supermercados, rotisería y locales de abastecimiento, entre muchos otros. Se sabe que cada vez existen muchos productos comerciales que pueden ser vendidos en estos locales, y a medida que siguen surgiendo nuevos productos, más demanda se genera para los locatarios. Uno de los mayores problemas que existe en estos establecimientos es que tarde o temprano, considerando un local pequeño que tiene planes para expandirse, no podrá llevar un registro ordenado y conciso si el dueño empieza a manejar una variada y expansiva cantidad de productos. Esto puede conllevar a variados errores en el registro de la información del local, tales como pérdida de información, registros erróneos tales como productos inexistentes, stock mal registrado, inventario faltante, entre otros problemas. Por eso, el objetivo de este proyecto, es construir un sistema pequeño pero suficiente para manejar el masivo movimiento de los productos vendidos en supermercados. Existirá la posibilidad de catalogar todos los productos que una cadena de locales interrelacionados podrá manejar. No sólo se verá que un cliente podrá comprar productos en un local específico, sino que este podrá ver los productos que un local específico contiene, al igual que su stock disponible. Esto permite que el usuario que use este sistema maneje mucho mejor la información que dispone. Descripción Un producto se compone de un identificador (ID), un nombre, un precio y una descripción. Una categoría se compone de un identificador (ID), un nombre y una descripción. Un carro de compra se compone una cantidad, un precio por cantidad y un subtotal. Una orden se compone de un identificador (ID), la cantidad de productos en total y el total de la orden. Un local se compone de un identificador (ID), un nombre, una descripción, una ciudad, una dirección y un número de teléfono. Un cliente se compone de un RUT, un nombre, una dirección, un teléfono fijo y uno móvil. Un descuento de producto se compone de un identificador, una descripción, un número y una fecha. Un producto puede contenerse en uno o más carritos de compra, también un producto puede estar en uno o varios locales, y finalmente, un producto sólo pertenece a una y sólo una categoría. Una categoría contiene al menos un producto, y puede contener hasta muchos productos. Un carrito de compra puede pertenecer a uno y sólo una orden final. A la vez, un carrito de compra sólo pertenece a un y sólo un cliente. Un cliente puede realizar un y sólo un carrito de compra a la vez, pero este puede realizar una o varias órdenes finales. Una orden de compra sólo le pertenece a un cliente, y una orden de compra sólo puede contener productos de las cuales son contenidos del local del cual se generó el carrito de compra. Un descuento puede ser aplicado a una o varias categorías. A la vez, este puede ser aplicado a un producto exclusivo o varios, pero un producto no puede tener un descuento exclusivo, si su categoría ya está en descuento. Requisitos funcionales Este sistema de supermercados funcionará en una plataforma online, requiriendo cada usuario una cuenta autentificada para poder realizar compras. Como es un sistema simple al momento de realizar, sólo existirán dos tipos de usuarios, el administrador y el comprador. El primero será capaz de manejar la base de datos completa, realizando cambios en los datos, modificando los datos presentes y administrando las cuentas presentes. El comprador sólo tendrá acceso para poder realizar compras en línea desde un local especificado, el cual soporte compras en línea. Las consultas que se podrán hacer dentro del sistema están tales como: Tiendas que soporten compras en línea Inventario de productos y disponibilidad Ordenes de compras previamente realizadas Historial de pagos y compras previos Descuentos aplicados a la compra previamente realizada Disponibilidad de ultimo stock de un producto específico Etc. Escalabilidad / Actualización / Mantención En términos de escalabilidad, si bien no se contempla mucho la adición de nuevas características en el futuro cercano, existe la posibilidad de incorporar la habilidad de una orden de compra global, donde se realiza el mismo procedimiento para una orden de un local, pero con la diferencia de que se pueden elegir productos de varios locales a la vez. Con términos de la actualización, los datos, los datos aumentarán de tamaño en forma lineal, ya que cada vez existirán más productos que pueden ser registrados, y a la vez pueden existir nuevos locales que pueden ser registrados en la base de datos. Dependiendo de la cantidad de productos que se vayan ingresando a medida que se contabiliza el inventario, la información será registrada diariamente. Para realizar el mantenimiento del sistema, se dará un tiempo semanal de unas 2 a 4 horas (es un estimado, diferente de la vida real) para deshabilitar el sitio y mantenerlo. Sólo el administrador podrá acceder a su cuenta de usuario para supervisar y reportar cualquier anomalía que el sistema presente o para monitorear el progreso de la mantención. Interfaz requerida La base de datos va a necesitar una interfaz online la cual tenga la capacidad de procesar transacciones seguras. En primera instancia se presentará un menú donde se desplegarán las opciones principales de ls sistema. Previo a esta pantalla, se mostrará la pantalla de ingreso al sistema donde se autentificará al usuario. Por cada mantenedor en el sistema, se presentará la tabla de ingreso/modificado de datos y, en algunos casos, una lista de datos para una rápida selección y consulta. Plan de trabajo