Estoy construyendo un sitio de comercio electrónico y me gustaría ofrecer descuentos en ciertos artículos por tiempo limitado.cómo modelar el descuento en artículos en una base de datos?
Mi mesa Producto (MySQL) tiene el siguiente aspecto:
Product - productId - Name - Weight - Price (price as on the cover of the item)
¿Debo hacer otra mesa para ofertas:
Deals - dealID - productID (Foreign Key) - discount (fractional value: percentage) - description
Para artículos recuperar:
- Q1: Encuentra todos productos en productos con productID = todos los productIDs en la tabla de ofertas
- Q2: Actualizar el precio con descuento a partir de la tabla ofertas
- P3: devolver todos los productos
¿Hay una mejor manera de hacer esto? Además, ¿cómo manejo el caso de trato existente solo por un tiempo limitado?
EDIT: Me gustaría mostrar la cantidad de descuento que ofrecemos por producto. Por lo tanto, necesito dos valores por producto, precio original y precio de descuento para la duración dada.
he publicado una continuación de la solución propuesta por crontab here
con una tabla de precios del producto, es posible que ni siquiera necesite la tabla de ofertas ... las fechas son la clave. – Randy
@Randy: por eso dije "en lugar de crear una tabla de Ofertas". ;) – Crontab
@Crontab El enfoque ProductPricing es una buena solución ya que tiene el beneficio adicional de permitir ajustes de precios a productos que no se han originado en una oferta/promoción (por ejemplo, el precio aumenta). Incluso podría almacenar el motivo del último cambio de precio en la tabla ProductPricing. –