¿Me echáis una mano con algo de teoría?

05/11/2007 - 17:15 por Masta | Informe spam
Hola a todos.

Tengo una duda a la hora de plantear un par de tablas.

Tengo una tabla de PEDIDOS y otra de CUPONES de tal forma (os pongo
sólo los campos involucrados para este caso).

PEDIDOS
IDPedido
IDCupon
Descontado

CUPONES
=IDCupon
Nombre
Caducidad
Descuento

Como véis, es un simple sistema de couponing para una tienda.

Mi duda es:
Si el cliente introduce un cupongo válido, cuando genero el pedido le
indico el IDCupon correspondiente. Pero si el cliente no pone ningún
cupón, ¿qué debería introducir en el campo IDCupon de la tabla
PEDIDOS? ¿Tengo que crear un cupón sin valor que me sirva de comodín
para estos casos?

¿Cómo lo haríais vosotros contando que luego tendré que hacer
estadísticas de campañas de cupones, con lo que para que salgan las
queries, en el campo IDCupon debería haber un ID existente en la tabla
de CUPONES, no?

Siento que me he liado con algo estúpido, echadme una mano por favor.

Muchas gracias!

Preguntas similare

Leer las respuestas

#1 Alfredo Novoa
05/11/2007 - 17:23 | Informe spam
Hola,

On Mon, 05 Nov 2007 08:15:21 -0800, Masta
wrote:

Tengo una tabla de PEDIDOS y otra de CUPONES de tal forma (os pongo
sólo los campos involucrados para este caso).

PEDIDOS
IDPedido


IDCupon
Descontado

CUPONES
=>IDCupon
Nombre
Caducidad
Descuento

Como véis, es un simple sistema de couponing para una tienda.

Mi duda es:
Si el cliente introduce un cupongo válido, cuando genero el pedido le
indico el IDCupon correspondiente. Pero si el cliente no pone ningún
cupón, ¿qué debería introducir en el campo IDCupon de la tabla
PEDIDOS? ¿Tengo que crear un cupón sin valor que me sirva de comodín
para estos casos?



La teoría dice que lo mejor es crear una nueva tabla:

PEDIDOS
IDPedido
Descontado

CUPONES
=IDCupon
Nombre
Caducidad
Descuento

CUPON_PEDIDO
IDPedido
IDCupon

¿Cómo lo haríais vosotros contando que luego tendré que hacer
estadísticas de campañas de cupones, con lo que para que salgan las
queries, en el campo IDCupon debería haber un ID existente en la tabla
de CUPONES, no?



No, puedes usar un "outer join".


Saludos
Alfredo
Respuesta Responder a este mensaje
#2 jcpc91
05/11/2007 - 18:23 | Informe spam
Yo no estoy de acuerdo con la respuesta anterior desde mi punto de
vista lo ke tienes es una relación de uno a muchos y si es así no
necesitas una tabla intermedia ya ke solo es cuando es de muchos a
muchoas
ahora lo ke debes ver es si kieres una relación de cero o uno a muchos
porke si es así
la tabla PEDIDOS en la llave foranea deberá estar marcada como null
en este caso idcupon, asi podran existir registros en la tabla PEDIDOS
si necesidad que existan registros en la tabla CUPONES, si de lo
contrario kieres ke sea una relación uno a muchos la llave foranea no
debe aceptar valores null entienes lo importante es el tipo de
relación
0 o 1 a muchos o del tipo uno a muchos
PEDIDOS
IDPedido
IDCupon , null
Descontado


ahora bien otra forma ke yo utilizo es ke en tucaso en la tabla
CUPONES agregues un nuevo registro como por ejemplo (NO ESPECIFICADO)
o NO APLICA como tu le kiereas llamar para de esa forma los usuarios
desde la aplicación indiquen ke al pedido ke están generando no
aplica los cupones
Respuesta Responder a este mensaje
#3 Manuel Vera
05/11/2007 - 18:56 | Informe spam
Yo uso esta opcion colocando, para el caso del ejemplo, Pedidos.IDCupon =
null cuando se hace un pedido sin utilizar ningun cupon de descuento.

MV

escribió en el mensaje
news:
Yo no estoy de acuerdo con la respuesta anterior desde mi punto de
vista lo ke tienes es una relación de uno a muchos y si es así no
necesitas una tabla intermedia ya ke solo es cuando es de muchos a
muchoas
ahora lo ke debes ver es si kieres una relación de cero o uno a muchos
porke si es así
la tabla PEDIDOS en la llave foranea deberá estar marcada como null
en este caso idcupon, asi podran existir registros en la tabla PEDIDOS
si necesidad que existan registros en la tabla CUPONES, si de lo
contrario kieres ke sea una relación uno a muchos la llave foranea no
debe aceptar valores null entienes lo importante es el tipo de
relación
0 o 1 a muchos o del tipo uno a muchos
PEDIDOS
IDPedido
IDCupon , null
Descontado


ahora bien otra forma ke yo utilizo es ke en tucaso en la tabla
CUPONES agregues un nuevo registro como por ejemplo (NO ESPECIFICADO)
o NO APLICA como tu le kiereas llamar para de esa forma los usuarios
desde la aplicación indiquen ke al pedido ke están generando no
aplica los cupones
Respuesta Responder a este mensaje
#4 Masta
05/11/2007 - 18:57 | Informe spam
Creo que utilizaré la opción de crear un registro-comodín de "NO
APLICAR".. me parece que es lo más sencillo.

Muchas gracias a ambos por vuestra ayuda.
Respuesta Responder a este mensaje
#5 Victor Koch
05/11/2007 - 19:05 | Informe spam
Hola Masta,

Otra solucion sin necesidad de hacer una tabla de muchos a muchos.

PEDIDOS
IDPedido (PK)
Descontado

CUPONES
=IDCupon (PK)
IDPedido (FK)
Nombre
Caducidad
Descuento

Esta solucion contempla:

1.Pedidos sin cupones.
2.Pedios con mas de un cupon.

Un saludo, Víctor Koch.


"Masta" escribió en el mensaje
news:
Hola a todos.

Tengo una duda a la hora de plantear un par de tablas.

Tengo una tabla de PEDIDOS y otra de CUPONES de tal forma (os pongo
sólo los campos involucrados para este caso).

PEDIDOS
IDPedido
IDCupon
Descontado

CUPONES
=IDCupon
Nombre
Caducidad
Descuento

Como véis, es un simple sistema de couponing para una tienda.

Mi duda es:
Si el cliente introduce un cupongo válido, cuando genero el pedido le
indico el IDCupon correspondiente. Pero si el cliente no pone ningún
cupón, ¿qué debería introducir en el campo IDCupon de la tabla
PEDIDOS? ¿Tengo que crear un cupón sin valor que me sirva de comodín
para estos casos?

¿Cómo lo haríais vosotros contando que luego tendré que hacer
estadísticas de campañas de cupones, con lo que para que salgan las
queries, en el campo IDCupon debería haber un ID existente en la tabla
de CUPONES, no?

Siento que me he liado con algo estúpido, echadme una mano por favor.

Muchas gracias!
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida