Professional Documents
Culture Documents
Noviembre 2005
TiendaVirtual
de Vinos
Realizado por:
Angel Oreja Martín
Pablo San Feliciano Martín
Victor Teniente Mateos
1
ÍNDICE GENERAL
2
1. Descripción del proyecto
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 que 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 multiplicado
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.
Clientes
Para que un cliente pueda comprar tiene que estar dado de alta en el sistema. Por
3
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.
4
(0,1) conforma
NIF CIF
ISA 2
Dispone
(1,1)
CAJA BOT ELLA_IND CAJA_BOT ELLAS
ISA 3
2. Diagrama Entidad / Relación
(1,1)
UVA DENOMINACION_ORIGEN (1,1)
(1,1)
(0,n)
Distribuye FACTURA Reci be USUARIO login
(1,1) (0,1)
(1,1)
Reconoce
id_factura n_telef
uva-tipo
(0,n) (0,n)
VINO (1,n) E
(0,n)
T ELEF_USR T lf-User
(1,n) (0,n) (0,n)
Provee T IPO_VINO Posee FORMAT O
id_bodega
(1,1) cod_vino id_form ato
(1,1) E (1,n)
BODEGA T lf-Bod T ELF-BOD n_telef
5
3. Descripción de las Entidades y Relaciones
ENTIDADES:
• Regulares:
o TIPO_VINO =(@cod_vino, categoría, porcentaje_uva, crianza, añada, cata,
temperatura, comentarios_vino, cod_Dorigen, id_bodega,cod_uva)
o FORMATO =(@id_formato, volumen)
o BOTELLA_IND = (@id_ref, fecha_envasado, etiquetado)
o BODEGA = (@id_bodega, nombre_bod, direccion_bod, correo_bod)
o CAJA = (@id_caja, tipo_caja, tamaño_caja, precio, descripción)
o LINEA_PEDIDO = (@cod_linea, cod_producto, subtotal_linea, id_pedido, cantidad)
o CAJA_BOTELLAS = (@id_caja_bot, fecha_embalado, n_botellas, descripción_c)
o PEDIDO = (@id_pedido, total_sin_iva,fecha, direccion_des,nombre_des,apellido_des)
o USUARIO = (@login, password, correo_user)
o FACTURA = (@id_factura, login, fecha_factura, id_pedido, n_factura, total_iva)
o PARTICULAR = (@NIF, fecha_nac, nombre, apellido1, apellido2, direccion_user)
o EMPRESA = (@CIF, nombre_e, dirección_e)
o DENOMINACION_ORIGEN = (@cod_Dorigen, zona_producción, info_Dorigen)
o UVA = (@cod_uva, nombre_u)
o PRODUCTO = (@cod_producto, precio)
• Debiles:
o TELF_BOD = (@n_telef, id_bodega)
o TELF_USR = (@n_telef, login)
RELACIONES:
• Regulares:
o Posee = . TIPO_VINO/FORMATO . Tipo N:N
o A) Distribuye = . BOTELLA_IND/VINO . Tipo 1:N (*)
o B) Distribuye = . BOTELLA_IND /CAJA_BOTELLAS . Tipo 1:N
o Provee = . TIPO_VINO/BODEGA . Tipo N:1
o Incorpora = . LINEA_PEDIDO/PRODUCTO . Tipo N:1
o Dispone = . LINEA_PEDIDO/PEDIDO . Tipo N:1
o Recibe = . USUARIO/FACTURA . Tipo 1:N
o Genera = . PEDIDO/FACTURA . Tipo 1:1
o Reconoce = . DENOMINACION_ORIGEN/TIPO_VINO . Tipo 1:N
o uva-tipo = . UVA/TIPO_VINO . Tipo 1:1
• Debiles:
o Tlf-Bod = BODEGA/TELF-BOD .
o Tlf-User = USUARIO/TELEF_USR .
GENERALIZACIONES:
o ISA 3 = . PARTICULAR/EMPRESA/(@USUARIO
o ISA 2 = . (@PRODUCTO/CAJA/BOTELLA_IND/CAJA_BOTELLAS
AGREGACIONES:
6
4. Modelo lógico del sistema: MODELO RELACIONAL
• TIPO_VINO
Cod_vino Categoría Porcentaje_uva Crianza Añada Cata Temperatura Comentarios_vino Cod_Dorigen Cod_uva Id_bodega
Claves ajenas:
• FORMATO
Id_formato Volumen
• BOTELLA_IND
• BODEGA
7
• CAJA
• LINEA DE PEDIDO
Claves ajenas:
⇒ Cod_producto referencia PRODUCTO:
Al borrar: En cascada
Al actualizar: En cascada
Posibilidad de valores nulos: No
⇒ Id_pedido referencia PEDIDO:
Al borrar: En cascada
Al actualizar: En cascada
Posibilidad de valores nulos: No
• CAJA_BOTELLAS
• PEDIDO
• USUARIO
• FACTURA
8
Claves ajenas:
⇒ Id_pedido referencia FACTURA:
Al borrar: En cascada
Al actualizar: En cascada
Posibilidad de valores nulos: No
• PARTICULAR
• EMPRESA
• DENOMINACION_DE_ORIGEN
• UVA
Cod_uva Nombre_u
• PRODUCTO
Cod_producto Precio
• TELF_BOD
N_telef Id_bodega
9
Claves ajenas:
⇒ Id_bodega referencia BODEGA:
Al borrar: En cascada
Al actualizar: En cascada
Posibilidad de valores nulos: No
• TELF_USR
N_telef Login
Claves ajenas:
⇒ Login referencia USUARIO:
Al borrar: Restringido
Al actualizar: En cascada
Posibilidad de valores nulos: No
• POSEE
Cod_vino Id_formato
• VINO
Claves ajenas:
⇒ Id_ref referencia identificador del producto:
Al borrar: En cascada
Al actualizar: En cascada
Posibilidad de valores nulos: No
10
5. Descripción de las relaciones mas interesantes
VINO
(0,n) (0,n)
TIPO_VINO Posee FORMATO
• Generalización PRODUCTO
(1,1) (0,n)
PRODUCTO Incorpora LINEA_PEDIDO
(1,1)
ISA 2
conform a
(0,1)
LINEA_PEDIDO
(0,n)
11
• Relación VINO distribuye BOTELLA_IND / VINO distribuye
CAJA_BOTELLAS
BOTELLA_IND CAJA_BOTELLAS
(1,1) (1,1)
Distribuye
(0,n)
VINO
• Relaciones USUARIO-FACTURA-PEDIDO
PEDIDO
(1,1)
Genera
(1,1)
(1,1)
(0,n)
FACTURA Recibe USUARIO
12