tienda virtual de vinos

17
Tienda Virtual de Vinos Diagrama entidad-relación y consultas en MYSQL Fecha 06/06/2011 Escuela CBTIS #172 Profesora Esperanza Pescador Espitia. Autores Laura Lizet Hortelano Calero. Yessica Guadalupe González Morales.

Upload: laura-lizet-hortelano-calero

Post on 26-Mar-2015

411 views

Category:

Documents


4 download

DESCRIPTION

Sistema Tienda Virtual de Vinos

TRANSCRIPT

Page 1: Tienda Virtual de Vinos

Tienda Virtual de Vinos

Diagrama entidad-relación y consultas en MYSQL

Fecha

06/06/2011

Escuela CBTIS #172

Profesora

Esperanza Pescador Espitia.

Autores

Laura Lizet Hortelano Calero. Yessica Guadalupe González Morales.

Page 2: Tienda Virtual de Vinos

2

Índice Título Página

Descripción del problema…………………………………………..3

Entidades y atributos…………………………………………………5

Diagrama inicial…………………………………………………………6

Diagrama final……………………………………………………………7

Consultas en la base de datos “Tienda de Vinos” en

MYSQL…………………..…………………………………………………...8

Page 3: Tienda Virtual de Vinos

3

TIENDA VIRTUAL DE VINOS

Un distribuidor de vinos ha decido montar una tienda virtual en Internet a través de la

cual vender sus productos en línea. Las primeras reuniones se han resumido en un

documento expresado en lenguaje natural, que recoge a grandes rasgos la lógica de

negocio del sistema a construir. Este documento se presenta a continuación:

El software a construir debe cumplir las siguientes funcionalidades:

Mantenimiento de los productos

Mantenimiento de proveedores

Mantenimiento de los clientes

Gestionar el carrito de la compra de vinos

Facturación de los pedidos

Permitir listados y estadísticas

Productos El distribuidor en cuestión comercializa diferentes productos relacionados con el vino.

Cada producto (llamémosle tipo de vino), viene definido por un nombre, una

denominación de origen, una categoría opcional (cosecha, media barrica, crianza,

reserva, gran reserva, reserva especial), la variedad de uva y su porcentaje, la crianza,

una añada, un precio por botella sin IVA, la cata, la gastronomía recomendada, la

temperatura a la que se debe servir y los comentarios destacables de ese tipo de vino.

Cada tipo de vino puede distribuirse en diferentes formatos siendo los más habituales

(aunque pueden aparecer más) media botella, tres cuartos, litro y medio y cinco litros.

No todo tipo de vino tiene por qué distribuirse en todos los formatos.

Cada tipo de vino de un formato determinado puede venderse en una (y sólo en una) de

las dos siguientes posibilidades: por botellas o por cajas de madera de n unidades, de

forma que el precio de la caja será el de cada botella multiplicada por el número de

botellas más un plus por la caja de madera.

De cada tipo de vino se debe tener constancia del número de unidades de que se

dispone, haciendo referencia la unidad al formato de distribución (botella o cajas de n

botellas).

Cada tipo de vino se compra en una bodega, de forma que de cada bodega se debe

conocer el nombre, la dirección, el correo electrónico y una lista de teléfonos de

contacto.

Además, el cliente podrá configurar cajas de madera con las botellas compradas

individualmente (los tipos de cajas disponibles son de 1, 2, 3, 4 y 6 botellas) para poder

adquirir una caja así conformada debe llenarse la caja. La caja de madera tendrá un

coste adicional y variará en función del tamaño.

Opcionalmente, el cliente puede elegir una dirección diferente a la que enviar el pedido.

Si se elige la opción “Regalo”, la factura se enviará a la dirección del cliente y el pedido

a la dirección indicada.

Descripción del proyecto

Page 4: Tienda Virtual de Vinos

4

Clientes Para que un cliente pueda comprar tiene que estar dado de alta en el sistema. Por

4 ello, de cada uno se conocerá su NIF, fecha de nacimiento (no se venderá vino a los

menores de 16 años), nombre, apellidos, dirección, correo electrónico y lista de

teléfonos.

Se contempla la posibilidad de que el cliente sea una empresa, pero entonces se

almacenará su CIF, y, obviamente, no hará falta la fecha de nacimiento.

Una vez que el cliente está dado de alta se le asignará un nombre de usuario y una clave.

El carrito de la compra El usuario irá seleccionando los productos e incorporarlos a su carrito. Este carrito se

podrá vaciar en cualquier momento, o bien confirmar su contenido para conformar el

pedido final.

No se desea guardar información histórica de los carritos de la compra.

Facturación Cuando el cliente ha confirmado su carrito, se emite una factura que se le enviará con la

mercancía, excepto si el pedido era para regalo.

Debe tenerse constancia de la dirección a la que se envió la factura.

La factura siempre se paga con VISA en el momento de confirma el pedido.

La factura detallará perfectamente todos los productos comprados, más una cantidad fija

por gastos de envío.

Las facturas no se borrarán, ni podrán modificarse, pero podrán imprimirse tantas veces

como sea necesario.

Listados El usuario no ha definido todos los listados que requiere, pero si le interesa obtener

estadísticas de compras por tipos de vino.

Page 5: Tienda Virtual de Vinos

5

Bodega (Id bodega, nombodega,dirección,correo)

Botella ( Idref, fech.envasado)

Caja botellas (Id caja botellas, fech.etiquetado, numbotelas, precio)

Factura (Idfactura, nombre, fecha, Id pedido, numfactura,total)

Formato (Idformato)

Linea de pedido (Codpedido, Id caja de botellas, cantidad)

Pedido (Idpedido, fecha)

Posee (Codvino, Idformato)

Tipo vino (Codvino, porc.uva, coduva, Idbodega, Idpedido)

Usuario (Nombre, login, correouser)

Uva (Coduva, nomuva, vino)

Page 6: Tienda Virtual de Vinos

6

Page 7: Tienda Virtual de Vinos

7

Page 8: Tienda Virtual de Vinos

8

Sistema: Tienda virtual de Vinos

Consulta 01: Obtener el nombre de la uva con el Coduva de UV456.

Sintaxis:

select Nomuva

from uva

where uva.Coduva='UV456'

Consulta 02: Obtener el nombre de usuario de la factura con el Idfactura de

FA444.

Sintaxis:

select Nombre

from factura

where factura.Idfactura='FA444'

Page 9: Tienda Virtual de Vinos

9

Consulta 03: obtener el Id de la bodega y el numero de teléfono de la bodega

agrupados por bodega.

Sintaxis:

select bodega.Idbodega, telefonobod.Numtel

from bodega, telefonobod

where bodega.Idbodega=telefonobod.Idbodega

group by

bodega.Nombodega

Consulta 04: Obtener el total de la factura con el id de factura de FA111.

Sintaxis:

select total

from factura

where factura.Idfactura='FA111'

Page 10: Tienda Virtual de Vinos

10

Consulta 05: Obtener la categoría del vino con el código de uva UV355.

Sintaxis:

select Vino

from uva,tipovino

where uva.Coduva=tipovino.Coduva

and tipovino.Coduva='UV355'

Consulta 06: Ordenar el nombre de los distribuidores alfabéticamente.

Sintaxis:

select Nombre

from usuario

ORDER BY

usuario.Nombre ASC

Page 11: Tienda Virtual de Vinos

11

Consulta 07: Obtener todos los datos de los usuarios.

Sintaxis:

select *

from usuario

Consulta 08: Obtener el código de la uva y el Id de formato de la uva agrupado

por código de uva.

Sintaxis:

select tipovino.Coduva,formato.Idformato

from formato, tipovino

where formato.Idformato=tipovino.idformato

group by

tipovino.Coduva

Page 12: Tienda Virtual de Vinos

12

Consulta 09: Obtener los nombres de los usuarios y el Id de la factura

agrupados por nombre de usuario.

Sintaxis:

select factura.Nombre,factura.Idfactura

from factura

group by

factura.Nombre

Consulta 10: Obtener el porcentaje de la uva cuyo código de uva es igual a

UV565.

Sintaxis:

select tipovino.`porc.uva`

from uva,tipovino

where uva.Coduva=tipovino.Coduva

and tipovino.Coduva='UV565'

Page 13: Tienda Virtual de Vinos

13

Consulta 11: Obtener los pedidos que fueron hechos en el 2010.

Sintaxis:

select pedido.Fecha

from pedido

where pedido.Fecha

like '2010%'

Consulta 12: Obtener el nombre de la uva y el vino que se elabora con ella.

Sintaxis:

select uva.Vino,uva.Nomuva

from uva

Page 14: Tienda Virtual de Vinos

14

Consulta 13: Obtener que Id de la caja de botellas están registradas con un

costo de 8000 pesos.

Sintaxis:

select cajabotellas.Idcajabotellas

from lineapedido,cajabotellas

where lineapedido.Idcajabotellas=cajabotellas.Idcajabotellas

and cajabotellas.precio='8000'

Consulta 14: Obtener el máximo precio que puede tener una caja de botellas.

Sintaxis:

select max(precio)

from cajabotellas

Page 15: Tienda Virtual de Vinos

15

Consulta 15: Obtener el nombre de los usuarios cuyo apellido comienze con M.

Sintaxis:

select usuario.Nombre

from usuario

where usuario.nombre

like'M%'

Consulta 16: Obtener que cajas de botellas fueron etiquetadas en el año 2011.

Sintaxis:

select cajabotellas.`Fecha de etiquetado`

from cajabotellas

where cajabotellas.`Fecha de etiquetado`

like '2011%'

Page 16: Tienda Virtual de Vinos

16

Consulta 17: Obtener el numero de teléfono de la bodega y el nombre de la

bodega agrupados por nombre de la bodega.

Sintaxis:

select telefonobod.Numtel,bodega.Nombodega

from telefonobod,bodega

group by

bodega.Nombodega

Consulta 18: Ordenar de mayor a menor los totales de cada una de las

facturas.

Sintaxis:

select factura.Total

from factura

where factura.Total <> "0"

order by- factura.Total

Page 17: Tienda Virtual de Vinos

17

Consulta 19: Obtener el nombre de usuario cuyo apellido es Hatsune.

Sintaxis:

select usuario.Nombre

from usuario

where usuario.nombre

like'Hatsune%'

Consulta 20: Obtener el password y el correo de los usuarios.

Sintaxis:

select usuario.`password`,usuario.correouser

from usuario